기록장

다향성(polymorphism) 알려줄게 본문

개발/JAVA

다향성(polymorphism) 알려줄게

HJJJJJ 2022. 5. 21. 18:03
728x90

다형성이란 여러가지 형태를 가질 수 있는 능력이야

 

6~7장 반복 많이 해야 돼~

다형성을 이해 못하면 이후에

추상클래스 인터페이스 이런거 이해를 못해~

 

//하나가 여러가지 형태를 가질 수 있어서 다형성이야~

많을 다(多)/모양 형(形)//

 

누가 물어본다면

조상 타입 참조 변수로 多形性를 다루는게 다형성이야

라고 말하면 돼

조상타입 참조변수로 자손타입 객체를 가리키는거야~

(참조 변수 타입 상관없이 괜찮아)

 

자손이 물려받은 조상유전자+자기꺼 있으니까

기능이 더 많겠지? 그래서

자손타입객체 기능을 다 사용할순는 없어

 

Tv가 조상이고 스마트TV가 자손이라고 생각해보자

그러면 원래는 

TV t = new 스마트Tv 이건 타입 불일치라서 안되는 거지만

가능한게 다형성이야~ 

 

대신에 

스마트TV = new TV 이런식으로 자손이 조상꺼 쓰는건 안돼~

 

스마트 TV 리미콘을 TV에 작용시켰는데 안되면

소비자들 빡치잖아 뭐 그런거지 ㅋ

 


- 참조변수의 형변환 -> 사용할 수 있는 멤버의 개수를 조절 - 상속관계 참조변수는 서로 형변환 가능 - 자손 -> 조상 사용 멤버의 개수 감소 (안전) - 조상 -> 자손 사용 멤버의 개수 증가 (안전하지 않음)

 


Parent parent = new Child(); //자동 타입 변환

Child child = (child) parent; //강제 타입 변환

728x90
Comments