java - new <childclass>() 和 new <parentclass>() 有什么区别?

标签 java class instance extends

我是一个java新手,所以请帮助我理解这一点。

例如

class a{...}
class b extends a{
   public static void main(...){
      a x = new a();
      b y = new b();
      a z = new b();
    }

这三个实例有什么区别?我应该什么时候使用每一个?

编辑:更正了最后的陈述

最佳答案

您可以使用a作为代码重用方法的参数。即我们可以定义一个方法(使用参数a)如此通用,以至于它可以与其任何派生类一起使用(b,..)


例如:考虑使用此方法来读取 Stream

public void Read(Stream s)
{
   //read s
}

现在您可以在 Stream 的所有派生类中重用此方法

Read(new FileStream(PATH));//read File
Read(new NetworkStream(URL));//read url
Read(new MemoryStream(object));//read memory object

关于java - new <childclass>() 和 new <parentclass>() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18779627/

相关文章:

java - 带有用户输入的 Servlet?

java - 当多个线程同时请求加载同一个类时会发生什么?

java - 从字符串获取类类型

c++ - 将 C++ 类更改为模板

javascript - 如何在 javascript 中调用未命名的实例?

java - Android 的 ORMLite 不会使用 foreignAutoRefresh 自动刷新外部对象

java - 如何在主包之外构建 JUnit 测试目录?

C++ 私有(private)结构和非静态常量变量初始化

Java通用列表名称冲突,具有相同的删除

.net - VB.NET:获取实例的类名