可以说我有超级班
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
,它“掩盖”(也称为覆盖)基本行为,在这种情况下,通过打印“from subclass2”。
这样,如果您创建类 SuperSub 的对象,则该对象仍将表现为 SuperSub 。
分别地,如果您创建类 SubClass2 的对象,则其行为类似于 SuperSub ,带有您在 SubClass2 中定义的“扩展名”(在本例中为重写行为)。
关于java - 试图了解Java中的类继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50340120/