加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

试图理解java中的类继承

发布时间:2020-12-15 08:26:05 所属栏目:Java 来源:网络整理
导读:让我说我有超级班 public class SuperSub { public void overideThisMethod(){ System.out.println("Printed from Superclass"); }} 我有一个像这样的子类, public class SubClass2 extends SuperSub { @Override public void overideThisMethod(){ System.o
让我说我有超级班

public class SuperSub {
  public void overideThisMethod(){
    System.out.println("Printed from Superclass");
  }
}

我有一个像这样的子类,

public class SubClass2 extends SuperSub { 
  @Override
  public void overideThisMethod(){
    System.out.println("from subclass2");
  }
  public static void main(String[] args){
    SubClass2 subClass2= new SubClass2();
    subClass2.overideThisMethod();
    SuperSub superSub = new SuperSub();
    superSub.overideThisMethod();
  }
}

我从运行程序时得到输出:

run:
from subclass2
Printed from Superclass

输出不应该是,

run:
from subclass2
from subclass2

非常感谢任何澄清,谢谢!

解决方法

扩展(也称为继承)不会修改超类,但实际上会创建一个带有您定义的扩展的新类,例如覆盖它.

因此,两个类都存在,每个类都有自己的逻辑.

在这里,您正在创建一个名为SuperSub的类,它打印“从超类打印”.然后你使用它作为基础创建另一个类SubClass2,它“掩盖”(a.k.a.覆盖)基本行为,在这种情况下通过打印“from subclass2”而不是.

这样,如果你创建一个类SuperSub的对象,它仍然会表现为SuperSub.分别如果你创建了一个SubClass2类的对象,它的行为就像SuperSub一样,你在SubClass2中定义了“扩展”(在这种情况下是被覆盖的行为).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读