2. 오버라이딩의 역할
1) Dog d = new Dog();
d.eat();
d객체변수의 타입이 Dog 타입이므로 부모의 eat("먹다") 가 무시가 되고, 오버라이딩(Overriding)된 자식의 eat("개처럼 먹다")가 출력된다.
2) Animal d=new Dog();
d.eat();
원칙적으로 객체변수타입이 Animal이므로 객체변수 d접근할수 있는 객체는 Animal 객체이며는 Dog객체의 eat()에 접 근할 수 없다.
그러나 오버라이딩하는 경우 객체변수 d는 Dog객체의 eat()에 접근할수 있다.
따라서 d.eat()하는 경우 "개처럼 먹다"가 출력된다.
'자바 > Java TPC(생각하고, 표현하고, 코딩하고)' 카테고리의 다른 글
다형성 (0) | 2022.10.26 |
---|---|
부모와 자식간에는 형변환이 된다. & 나보다 부모가 먼저야 (0) | 2022.10.26 |
클래스의 정의 (0) | 2022.10.26 |
정보은닉에서의 Getter Setter (0) | 2022.10.26 |
Java TPC This (0) | 2022.10.26 |