함수가 호출 될 때 런타임에 모든 객체가 생성된다는 것을 알고 있습니다.런타임시 실제 객체가 결정되는 경우 컴파일시에 초기 바인딩이 해결되는 이유는 무엇입니까?
바인딩은 클래스 내부의 메소드 데이터 멤버를 바인딩 할 때입니다.
초기 바인딩은 컴파일 할 때 모든 메소드 인스턴스 변수를 바인딩합니다. 런타임시 모든 객체가 생성되므로 모든 메소드 데이터 멤버를 런타임에 바인딩해야한다고 생각했습니다.
왜 초기 바인딩에서 개체 메서드에 대한 호출이 컴파일 타임에 결정됩니까? 해당 객체가 런타임에 생성되는 경우
예를 들면.
class A{
public void foo(){
//some code here
}
}
public static void main(String[] args){
A aInstance = new A();
aInstance.foo();
}
foo()는 컴파일 타임에 해결되었지만 런타임에는 런타임에 결정됩니다.
어떻게 그 코드로 '인스턴스 A'가 다른 클래스가 될 수 있습니까? – Mat
이것은 잘못된 태그로 질문 된 Java 질문입니다. 태그 다시 지정. – iammilind