1. a는 슈퍼형 인스턴스를 참조하고 있다.
2. a는 서브형 인스턴스를 참조하고 있다.
1번이 맞는데
이유가 슈퍼클래스에 protected 멤버가 있다치면
서브클래스에 메인메소드 있다치고
super a = new sub(); 이거하고
a. protected 멤버 선언하면
access 어쩌고 하면서 에러뜸.
근데 이러면
super a = new sub(); 여기서
a.오버라이딩된 메소드 << 호출하면
되는데...
이게 원래 안되야 하는거임.
1.이 맞으면
슈퍼형 인스턴스인데... 서브클래스고 오버라이딩이고가 어딧음.
super a = new super(); 인데...
저장공간은 super로 선언했으니 변수 a자체에 할당되는 게 super짜리고, 거기에 sub가 들어간거지. 아마 메쏘드함수는 인스턴스클래스 자체에 붙어서 메모리에 올라갔던 것 같은데