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(); означает?
Base b2 = new Child();
и
b2.subtract();
То, что я понимаю, во время компиляции компилятор проверяет погоду Base
класса имеет subtract()
метод или нет, то во время выполнения во время выполнения полиморфизма происходит как объект типа Child
.
Вопрос заключается в том, как и где мы можем использовать эту линию т.е. Base b2 = new Child();
В каком сценарии мы должны использовать это? Пожалуйста, помогите, было бы здорово!
В принципе вы можете использовать его, когда нужен объект типа `Base` с поведением` Child`. – khachik 2010-12-15 08:17:56