【发布时间】:2010-12-15 08:13:34
【问题描述】:
class Base {
public void add() {
System.out.println("Base ADD");
}
void subtract() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
class Child extends Base {
public void add(){
System.out.println("Child ADD");
}
public void subtract() {
System.out.println("Child Subtract");
}
}
class MainClass {
public static void main(String args[]) {
Base b1 = new Base();
Base b2 = new Child();
Child b3 = new Child();
b1.add();
b2.subtract();
b2.add();
b3.subtract();
}
}
我对上面的代码有些困惑。最让我困惑的一行是
Base b2 = new Child();
和
b2.subtract();
我的理解是在编译时编译器检查天气 Base 类是否具有 subtract() 方法,然后在运行时运行时发生多态性,因为对象的类型为 Child。
问题是我们如何或在哪里可以使用这条线,即Base b2 = new Child();
我们应该在什么场景下使用它?请帮忙,会很棒!
【问题讨论】:
-
基本上你可以在需要
Base类型的对象时使用它,其行为为Child。
标签: java inheritance