아래 코드에서 b1.subtract()가 실패하는 이유는 무엇입니까? 그 이유를 설명해주세요. 즉, 그 메소드를 호출하는 동안 JVM에서 어떤 일이 일어나는지.런타임/컴파일 시간 다형성
class Base {
public void add() {
System.out.println("Base ADD");
}
}
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(); // ?????????**previously it was b1.subtract and its wrong
b2.add();
b3.subtract();
}
}
실패하면 무엇을 의미합니까? 위의 코드는 컴파일 오류를 발생시킵니다. b1은 Base 유형으로 선언되고 "Base"클래스는 "subtract"라는 이름으로 메소드가 없습니다. – sateesh