다형성
쉽게 상속의 반대 라고 생각을 할수도 있다.
Person1 person = new Person1();
Student student = new Student();
지금까지 객체생성을 할 때 클래스 타입과 동일한 클래스 타입을 참조했다. 하지만 이 방법만 있는 것이 아니다! 다형성을 이용하면 부모 클래스 타입의 레퍼런스 변수로 자식 클래스 객체를 참조할 수 있다!
자식이 부모에게 받으면 상속(extends)
부모가 자식에게 받으면 다형성! (물론 자식도 부모의 값을 다운 캐스팅으로 참조할 수 있다)
업 캐스팅(UpCasting)
부모 클래스 타입 레퍼런스 = 자식 클래스 객체의 참조 값
Person1 person = new Child();
이렇게 참조하게 되면 자식 클래스 객체의 레퍼런스 값의 타입은 자동으로 부모 클래스의 타입으로 변환하는데 이것을 UpCasting이라고 한다.
다운 캐스팅(DownCasting)
반면 자식 클래스의 레퍼런스 변수가 부모 클래스의 레퍼런스 값을 참조하면 자동으로 타입 변환이 되지 않는다. 때문에 부모 클래스 타입의 레퍼런스를 내가 바꾸어줘야 하는데 이것을 DownCasting이라고 한다.
Salaryman1 salaryman = (Salaryman)person;
부모-자식 관계를 이루는 클래스끼리만 가능하다!!
'개발일지 > Java + Spring' 카테고리의 다른 글
[Java] 거스름 돈 출력 - 예제 (0) | 2021.09.30 |
---|---|
[Java] 추상클래스 (0) | 2021.09.30 |
[Java] 접근 제한자, final 예약어 (0) | 2021.09.29 |
[Java] 상속(extends)의 정의 - overriding, Super() (0) | 2021.09.29 |
[Java] private, get-set 메소드 쉽게 생성하기(상속) (0) | 2021.09.29 |