我在Java重写中有点混乱。假设我们有以下继承:Java重写方法
class A{
public A(){
}
void show(){
System.out.println("SuperClass");
}
}
class B extends A{
@Override
void show(){
System.out.println("SubClass");
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
显然,class B
覆盖了由该class A
继承的方法show()
。为什么不b.show();
打印信息System.out.println("SuperClass");
以及因为class B
现在有方法show()
从class A
?
谢谢。
如果是的话,重写方法会有什么意义? –
@ sp00m那种。该方法仍然存在,但您可以通过'super'访问它。 – aruisdante
你好迈克与继承关系,其多态行为,即方法体的方法调用发生在运行时,即当jvm调用B b = new B();所以B对象是类B的类型,所以它显示B的方法的方法被覆盖1,如果你把super()你可以得到一个父类。 – Kogile