겉바속촉

객체지향 - 다형성(polymorphism) 본문

IT 일기 (상반기)/JAVA

객체지향 - 다형성(polymorphism)

겉바속촉 2022. 11. 9. 17:45
728x90
반응형

 

 

다형성이란 ??

 

<개념>

- 여러 가지 형태를 가질 수 있는 능력

- 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것

- 조상타입의 참조변수로 => 자손타입의 객체를 다룰 수 있는 것이 다형성

- 조상타입의 참조변수로 => 자손타입의 인스턴스 참조는 가능

- 자손타입의 참조변수로 => 조상타입의 인스턴스 참조는 불가능

 

 

<참조변수의 형변환>

- 서로 상속관계에 있는 타입간의 형변환만 가능

- 자손타입 => 조상타입 : 형변환 생략 가능

- 조상타입 => 자손타입 : 형변환 생략 불가

 

 

 

<instanceof 연산자>

- 참조변수가 참조하는 인스턴스의 실제 타입을 체크할 때 사용

- 연산결과는 true, false

- instanceof 연산결과가 true이면, 해당 타입으로 형변환 가능

 

 

 

<참조변수와 인스턴스변수의 연결>

- 멤버변수가 중복정의된 경우 : 참조변수 타입 따라 연결되는 멤버변수가 달라짐

- 메서드가 중복정의된 경우 : 참조변수 타입과 관계없이 항상 실제 인스턴스 타입에 정의된 메서드가 호출됨.

 

 

 

<매개변수의 다형성>

- 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.

 

728x90
반응형

'IT 일기 (상반기) > JAVA' 카테고리의 다른 글

JAVA 코드 구성 분석  (0) 2023.06.30
JAVA 와 Python의 차이점  (0) 2023.06.30
객체지향 - 접근 제어자(access modifier)  (0) 2022.11.07
객체지향 - 제어자(modifier)  (0) 2022.11.07
객체지향 - import  (0) 2022.11.07