332쪽 레퍼런스 타입 부분 과 284쪽 에서 이해가 안되는 부분이 있어서 질문 드립니다 ^^
1. 먼저 284쪽에서 추상 메소드를 포함하는 클래스는 클래스 자체도 추상 클래스로 선언해야 한다고 하는데 어떤 식으로 이해해야 할까요? 무조건 외우기 보다는 어떤식으로 이해해야 될지 설명을 좀 부탁드립니다.
제가 나름대로 이해한 바로는 추상 메소드는 머리만 있고 몸통은 없어서 그 기능을 쓸수없기 때문에 추상메소드가 있는 클래스는 기능적으로 불완전하기때문에 클래스까지 추상클래스로 만들어 버린다 로 이해를 했는데 정확한 이해인지는 잘 모르겠네요.
2. 332쪽에서 자바 컴파일러는 대입문 우변의 타입을 검사할 때 변수가 가지고 있는 데이터의 타입이 아니라 변수 자체의 선언된 타입을 검사합니다. 이부분에서 변수가 가지고 있는 데이터의 타입이라는 것과 변수 자체의 선언된 타입이라는 것이 잘 이해가 안갑니다.
3. 331쪽 에서 슈퍼클래스 변수의 값을 서브클래스 변수에 바로 대입하는 것은 잘못입니다. 설사 그 슈퍼 클래스 변수가 그 서브클래스 객체를 가리키고 있더라도 말입니다. 라는 구문이 있는데 이해하기가 좀 어렵네요.. 알기쉽게 설명을 좀 부탁드립니다..
4. 레퍼런스 타입의 캐스트 연산시 서브클래스에 슈퍼클래스를 서브클래스로 캐스트하여 대입할때 객체를 그 타입의 변수에 대입할 수 있다는 사실을 보증만 할 뿐이라고 하는데 이해하기 어렵네요.. 무슨 얘기인가요?
5. 335쪽에서 instanceof 연산자 부분에서 캐스트 가능성을 검사한다고 하는데 캐스트를 하면 무조건 캐스트가 되는줄 알았는데.. 언제 가능하고 불가능해 지는지 잘 이해가 안갑니다.
레퍼런스 타입이 좀 생소해서 그런지 어려움을 좀 겪고 있습니다. ^^
답변 부탁드릴게요.. 그럼 수고하세요.