假设我们有 A 类作为父类,C 类扩展它。
class A
{
void m()
{
System.out.println("A.m");
}
}
class C extends A
{
@Override
void m()
{
System.out.println("C.m");
}
}
A a
引用和C c
当我们使用它们指向相同的对象类型时有什么区别,例如A a = new C();
和C c = new C();
?
从这个问题:Java继承与C#继承,它看起来像a
并c
指向C的对象类型,使用它们似乎没有区别。
我测试了这段代码,它们都打印了C.m
.
class inherit {
void x(A a)
{
a.m();
}
public static void main(String[] args) {
System.out.println("hello");
A a = new C();
C c = new C();
a.m();
c.m();
new inherit().x(a);
new inherit().x(c);
}
}