public BookList(){
Book[] books = new Book[3];
books[0] = new Novel(1,"전쟁과 평화","톨스토이");
books[1] = new Poet(2,"들쑤시개","서정주");
books[2] = new SF(3,"나의 꿈","오딧세이");
}
Novel과 Poet와 SF는 abstract Book을 상속받은 상태고 up캐스팅
이렇게 하는건 데이터자리는 Novel Poet SF인데 참조변수가 Book형인 거니까 업캐스팅?
그러면 자식 클래스에서 따로 정의한 필드, 메소드는 사용못해요??[재정의말고]
맞습니다. 쓰려면 또 다운캐스팅해야 돼요.
그러면 Novel n1 = (Novel) books[0] 이런 식으로 일일히 해줘야 하나요??
네, 맞습니다.
형 감사합니다~ 질문이 하나 더 있는데 다운캐스팅 하면 자식 클래스에서 생성된 메소드, 필드에 접근이 가능한거죠??
업캐스팅은 접그 못하고????
네, 그렇습니다. 이런 거 구글 검색하면 잘 나와요.
검색력을 기를게요 형님 감사합니다~~~!
상속에 적합한 예제가 아닌데 무리하게 상속으로 뭔가를 만들고 있으니 이제 또 한명의 어린양이 엉뚱한 코드를 발라대며 사막의 음탕한 골짜기로 걸어가는구나.