상속 클래스의 이점
수평적 설계의 단점 극복 가능
확장이 쉬움
관리하기가 쉬움
예제
extends로 클래스 확장
위의 코드 출력결과는 "?"이 아닌 "개처럼 먹다.", "고양이처럼 먹다."
왜냐하면!!!
Override 되기 때문이다.
Override (재정의 / 부모 메서드 무시) :
상속관계에서 상속받은 하위 클래스가 상위 클래스의 동작을 정하는 것.
동적바인딩(호출 될 메서드가 실행시점에서 결정되는 바인딩) 프로그램의 속도가 떨어지는 원인이 되지만
이점이 더 많기 때문에 사용.
** 동적바인딩과 반대의 개념으로 Overload(정적바인딩)이 있다. 컴파일 시점에서 사용(호출)될 메소드가 결정되기 때문에
실행속도에 전혀 영향을 끼치지 않는다. **
동적바인딩의 이점은 속도 뿐만아니라 하위 클래스의 동작방식을 몰라도 부모클래스를 가지고 하위클래스에 접근 가능.
상속관계에서 하위클래스의타입이 상위클래스의 번지로 들어가며 자동형 변환 되는것 -> Object casting/객체캐스팅
Object casting에는 두 종류가 있다.
1. Upcasting : 작은 타입이 큰 타입으로 변환
2. Downcasting : 큰 타입이 작은 캐스팅으로 변환.
위의 기능으로 자동 형변환이 되어 서로 타입이 달라도 구동 가능.
**인프런 강의 'Java TPC(생각하고, 표현하고, 코딩하고 / 박매일 강사님)'를 듣고 작성 및 발췌 했습니다.
'Java' 카테고리의 다른 글
[JAVA/자바]Upcasting/업캐스팅, Downcasting/다운캐스팅 (0) | 2022.12.08 |
---|---|
[JAVA/자바]추상클래스와 인터페이스 (0) | 2022.12.07 |
[JAVA/자바]Model과 API (0) | 2022.12.04 |
[Eclipse/이클립스] Refactor로 class 이름 변경하기 (0) | 2022.09.24 |
[JAVA/자바] for문과 while문 비교하기 (0) | 2022.08.17 |