TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.
다형성
하나의 메소드(or 클래스)가 다양한 방법으로 동작하는 것을 의미한다.
객체지향 프로그래밍의 3대 특징 중 하나
상속을 이용한 기술로 부모타입으로부터 파생된 자식 객체들을 부모 클래스 타입 하나로 다룰 수 있는 기술이다.
업 캐스팅 Up Casting
부모 타입의 참조형 변수가 모든 자식 타입의 객체 주소를 받을 수 있음을 의미
즉 자식타입에서 부모 타입으로 형변환이 되는 것을 말한다.
자동형변환이 가능하므로 생략하여도 괜찮다.
부모클래스 변수명 = new 자식클래스( );
다운 캐스팅 Down Casting
부모 클래스 타입의 참조형 변수를 자식 클래스 타입으로 형변환하는 것
자동으로 처리되지않기때문에 반드시 강제형변환하여야 한다.
부모클래스 변수명 = new 자식클래스( );
((자식클래스)변수명).메소드명( );
다형성을 쓰는 이유?
1. 부모타입의 객체 배열로 다양한 자식들을 받아줄 수 있음 (부모 타입 하나만으로도 다양한 객체를 다룰 수 있다)
2. 메소드의 매개변수나 반환형에 다형성을 적용하게 되면 메소드 개수가 확 줄어든다.
instanceof 연산자
현재 참조형 변수가 어떤 자식클래스를 참조하고 있는지 확인할 때 사용하는 연산자이다.
클래스 타입이 맞으면 true, 맞지 않으면 false로 반환한다.
표현식
if(레퍼런스 instanceof 클래스타입) {
true일 때 처리할 내용
}
'Java' 카테고리의 다른 글
[Java] API? java.lang(Math클래스, String클래스, Java.util.Date) (0) | 2021.01.20 |
---|---|
[Java] 추상메소드? 추상클래스와 추상메소드 (0) | 2021.01.19 |
[Java] 오버라이딩(Overriding)과 오버로딩(Overloading) (0) | 2021.01.14 |
[Java] 상속? 예제로 알아보는 상속의 목적과 장점 (0) | 2021.01.12 |
[Java] 객체배열? 선언과 할당, 초기화 (0) | 2021.01.11 |
댓글