为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2021-05-10 16:25:05
我是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();?
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

让我在这里给您一个例子,说您的父类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类)。


查看完整回答
反对 回复 2021-05-19
?
温温酱

TA贡献1752条经验 获得超4个赞

当一个类从另一个扩展时,它成为父级的子类(扩展类)。

父引用可以包含一个孩子,而子引用始终可以包含一个自己的实例。

test t = new test();
ABC abc = new test();

都是有效的。对于为什么这个问题,克服某些情况可能会派上用场。

阅读更多有关面向对象编程中的多态性概念的信息。


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 207 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信