본문 바로가기
JAVA/JAVA 기초

다형성(Polymorphism)

by 도쿠니 2022. 3. 28.

1. 다형성

- 한 객체가 여러 가지 타입을 가질 수 있는 것

- 부모 클래스 타입의 참조 변수로 자식 클래스 인스턴스 

 

2. instanceof

- 실제 참고하고 있는 인스턴스의 타입 확인

 

class Person{}
class Student extends Person{}

// Student s1 = new Person(); 과 같이 하위타입에 상위 타입을 넣을 수 없다.
Person p1 = new Student(); // 업 캐스팅
Student s1 = (Student) p1; // 다운 캐스팅 

// 변수 instanceof 타입 , 변수가 타입의 인스턴스인지 알려줌 
System.out.println(p1 instanceof Person); // true

 

* 이거 관련해서는 SOLID 원칙의 LSP가 있다. 

* 후에 인터페이스 쓸 때도 이런식으로 상위 타입으로 변수를 두고 하위타입으로 부품을 갈아끼우듯이 해서 다형성을 적극 활용할 수 있다.

'JAVA > JAVA 기초' 카테고리의 다른 글

인터페이스 (Interface)  (0) 2022.03.29
추상 클래스 (Abstract Class)  (0) 2022.03.29
상속(Inheritance)  (0) 2022.03.28
클래스와 객체  (0) 2022.03.28
다차원 배열  (0) 2022.03.28

댓글