부모 클래스 PPP 만들어놓고 자식 클래스 CCC 만들어서
PPP parent = new CCC();
해버리면 잘 작동되는 거 아는데
이 짓을 대체 왜함? 어차피 CCC parent = new CCC(); 해도 PPP 클래스 상속받은거니까 잘 돌아가는데
부모 클래스 PPP 만들어놓고 자식 클래스 CCC 만들어서
PPP parent = new CCC();
해버리면 잘 작동되는 거 아는데
이 짓을 대체 왜함? 어차피 CCC parent = new CCC(); 해도 PPP 클래스 상속받은거니까 잘 돌아가는데
폴리모르피즘
코드를 유연하게 재사용하려고 - dc App
넌 상속 압수~
ㅠㅠ
울거없어 정말로 상속 압수당하고 variant로 하면서 나고수요 하는 친구들도 있으니까
한 가지로 묶어서 쓰기도 좋음 Weapon 클래스를 상속받은 검 총 방패가 있는데 Weapon 클래스의 객체를 만들어서 걔네를 다 할당해주고 공통적으로 갖고있는 Attack 메서드를 실행시키면 뚝딱임
어차피 Weapon 클래스에 Attack 메서드 넣어 놓으면 저런 업 캐스팅 안하고 검 g = new 검(); 해서 좌우변 타입 일치하게끔 해도 Attack 메서드 실행되자너
근데 이런 케이스는 인터페이스가 낫지 않음???????????????????
아 토달지말라고
List = ArrayList 같은경우는 개지랄이 맞다. Config = DevConfig or ProdConfig 이런경우는 유용함
머리 나쁘면 고나 쓰라고
CCC parent면 CCC2가 PPP를 상속 받았을 때 CCC2 child2=new CCC2();일 때 parent=child2; 로 교체가 안되잖아 parent를 다양하게 child도 되고 child2,3,4도 되게 교체하려고 쓰는 건데 parent.fly()가 다양한 child로 안되잖아
아 parent 자체에 동적으로 객체 할당하려고하는거구나 이해함 ㄳㄳ