본문 바로가기
Java

[Java] 다형성? 업캐스팅과 다운캐스팅 그리고 instanceof 연산자

by 나는 개발자 2021. 1. 18.
TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.

 

다형성  

 

하나의 메소드(or 클래스)가 다양한 방법으로 동작하는 것을 의미한다.

객체지향 프로그래밍의 3대 특징 중 하나

상속을 이용한 기술로 부모타입으로부터 파생된 자식 객체들을 부모 클래스 타입 하나로 다룰 수 있는 기술이다.

 

 

 

 

업 캐스팅 Up Casting

부모 타입의 참조형 변수가 모든 자식 타입의 객체 주소를 받을 수 있음을 의미

즉 자식타입에서 부모 타입으로 형변환이 되는 것을 말한다.

자동형변환이 가능하므로 생략하여도 괜찮다.

부모클래스 변수명 = new 자식클래스( ); 

 

 

다운 캐스팅 Down Casting

부모 클래스 타입의 참조형 변수를 자식 클래스 타입으로 형변환하는 것

자동으로 처리되지않기때문에 반드시 강제형변환하여야 한다.

부모클래스 변수명 = new 자식클래스( );
((자식클래스)변수명).메소드명( );

 

 

 

 

 

다형성을 쓰는 이유?

1. 부모타입의 객체 배열로 다양한 자식들을 받아줄 수 있음 (부모 타입 하나만으로도 다양한 객체를 다룰 수 있다)

2. 메소드의 매개변수나 반환형에 다형성을 적용하게 되면 메소드 개수가 확 줄어든다.

 

 

 

 

 

instanceof 연산자

현재 참조형 변수가 어떤 자식클래스를 참조하고 있는지 확인할 때 사용하는 연산자이다.

클래스 타입이 맞으면 true, 맞지 않으면 false로 반환한다.

 

표현식

if(레퍼런스 instanceof 클래스타입) {
                      true일 때 처리할 내용
}

 

 

 

댓글