超类对象还是子类对象?为什么?

我是Java初学者,我不知道何时创建超类或子类的实例。我正在在线学习一些教程,发现几次类似于以下代码:


package test;


class ABC{

   public void myMethod(){

    System.out.println("Overridden Method");

   }

}

public class test extends ABC{


   @Override

   public void myMethod(){

    System.out.println("Overriding Method");

   }


   public static void main(String args[]){

    ABC obj = new test();

    obj.myMethod();

   }

}

为什么我应该使用ABC obj = new test();而不是test = new test();?如果我需要一个新的ABC对象,只使用它是否有意义ABC obj = new ABC();?



智慧大石
浏览 208回答 2
2回答

HUH函数

让我在这里给您一个例子,说您的父类ABC具有静态方法或实例变量class ABC{int a;static void display(){ System.out.println("Parent ABC");}现在你有了ABC abc = new test();。参考abc,您可以访问public void myMethod()子类的test静态方法static void display()类的ABC。另外,您可以将aclass的实例变量ABC与reference一起使用abc。请记住,静态方法,实例变量,静态变量始终在引用类型(在这种情况下,类型为ABC)上被调用。而实例方法总是根据我们要引用的Object的类型来调用(在这种情况下,我们要引用的是 testObject类)。

温温酱

当一个类从另一个扩展时,它成为父级的子类(扩展类)。父引用可以包含一个孩子,而子引用始终可以包含一个自己的实例。test t = new test(); ABC abc = new test();都是有效的。对于为什么这个问题,克服某些情况可能会派上用场。阅读更多有关面向对象编程中的多态性概念的信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java