본문 바로가기

TIL

[Java] 다형성(Polymorphism)

728x90

학습 목표

  • 자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다.

한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든것을 의미

상위 클래스 타입의 참조변수를 통해 하위 클래스의 객체를 참조할 수 있도록 허용한것,하위클래스에선 상위 클래스로 객체 참조는안됨.

 

예를들어 홍길동이 extends를 요리사로 하면 new홍길동()을 할 시 홍길동만 뜨는것이 아니라 홍길동 +요리사 가같이 메모리에 뜬다 반대로 new요리사() 를할시 요리사 만 뜬다. 홍길동 h1 = new 홍길동() ,요리사 y1 = new 홍길동() 은 되지만 요리사 y2 = new 요리사()밖에안된다.

 

  • 참조변수의 타입 변환에 대한 내용을 이해하고, 업캐스팅과 다운캐스팅의 차이를 설명할 수 있다.

타입변환을 위해서는 세가지 조건을 충족해야한다.

1. 서로 상속관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입 변환이 가능합니다.

2. 하위 클래스 타입에서 상위 클래스 타입으로의 타입 변환(업캐스팅)은 형변환 연산자(괄호)를 생략할 수 있습니다.

3. 반대로 상위 클래스에서 하위 클래스 타입으로 변환(다운캐스팅)은 형변환 연산자(괄호)를 반드시 명시해야합니다.

  • instanceof 연산자를 언제 어떻게 활용할 수 있는 지 이해하고 설명할 수 있다.

instanceof 연산자는 앞서 배웠던 참조변수의 타입변환, 캐스팅이 가능한지 여부를 boolean 타입으로 확인할수있는 문법 요소이다

참조_변수 instanceof  타입  을 입력했을때 리턴값이 트루가 나오면 참조변수가 검사한 타입으로 타입변환이 가능하며 반대인경우 타입변환이 불가능하다.

 

728x90

'TIL' 카테고리의 다른 글

[Java]람다식(Lambda Expression)  (0) 2022.09.15
[Java]애너테이션(Annotation)  (0) 2022.09.15
[네트워크][HTTP]에러코드  (0) 2022.09.14
[Java]컬렉션  (0) 2022.09.14
[Java]캡슐화(Encapsulation)  (0) 2022.09.13