Java-참조 변수 Polymorphism(다형성)이란?

김동규·2022년 11월 8일
0

JAVA

목록 보기
31/38

일단 기본적으로 우리는 다형성이라는 단어를 추상적이지않고 직관적으로 알고넘어가 보도록하자

다형성의 사전적의미는 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질을 가리킨다.

이렇게 읽어봐도 이해가 잘가지 않는다. 좀더 축약해보자면

다형성이란 하나의 타입여러 객체를 대입할 수 있는 성질그 자체를 의미한다.

코드로도 알아보도록하자.

위코드를 보면 instance로 생성한 ph1과 ph2의 차이점이 보일것이다.
ph1은 타입이 SmartPhone(자식) 이면서 새로운 SmartPhone(자식) 객체를 ph1으로 집어넣어준다. 우리가 익히 알고있던 평범한 객체선언 이다.

하지만,ph2는 타입은 MobilePhone(부모) 이고 SmartPhone(자식) 객체를 넣어주려고 하고있다. 여기서 MobilePhone(부모) 타입으로 지정되어진 ph2 는 SmartPhone(자식)이 super(생성자)로 인해 올라간 부모필드메소드(answer),부모필드변수(number)를 메모리에올리고 자신의 필드메소드(playApp),자신의 필드변수(androidVer)를 메모리에 올릴것이다 하지만 타입이 MobilePhone(부모)인 상태에서 자식의필드메소드,필드변수는 따로정의되어있지않아 부모필드메소드와,부모필드변수만 ph2에 할당되게 되는것이다.

자식 클래스에서 사용할 수 있는 멤버의 개수가 언제나 부모 클래스와 같거나 많게 되는 구조라고 생각해두자.

한줄요약:부모는 자식이될수있지만(부모타입=new 자식),자식은 부모가 될수없다.(자식타입 != new 부모)

profile
HigasiHosi

0개의 댓글