본문 바로가기
Java

[JAVA/자바]상속 클래스, Override(재정의)

by hans-j 2022. 12. 6.

상속 클래스의 이점

수평적 설계의 단점 극복 가능
확장이 쉬
관리하기가 쉬움

 

부모 클래스


자식 클래스

extends클래스 확장


위의 코드 출력결과는 "?"이 아닌 "개처럼 먹다.", "고양이처럼 먹다.


!!!

 

Override 되기 때문이다.

Override (재정의 / 부모 메서드 무시) :

상속관계에서 상속받은 하위 클래스가 상위 클래스의 동작을 정하는 것.
동적바인딩(호출 될 메서드가 실행시점에서 결정되는 바인딩) 프로그램의 속도가 떨어지는 원인이 되지만
이점이 더 많기 때문에 사용.


** 동적바인딩과 반대의 개념으로 Overload(정적바인딩)이 있다. 컴파일 시점에서 사용(호출)될 메소드가 결정되기 때문에
실행속도에 전혀 영향을 끼치지 않는다. **


동적바인딩의 이점은 속도 뿐만아니라 하위 클래스의 동작방식을 몰라도 부모클래스를 가지고 하위클래스에 접근 가능.


상속관계에서 하위클래스의타입이 상위클래스의 번지로 들어가며 자동형 변환 되는것 -> Object casting/객체캐스팅

Object casting에는 두 종류가 있다.
1. Upcasting : 작은 타입이 큰 타입으로 변환
2. Downcasting : 큰 타입이 작은 캐스팅으로 변환.

위의 기능으로 자동 형변환이 되어 서로 타입이 달라도 구동 가능.


**인프런 강의 'Java TPC(생각하고, 표현하고, 코딩하고 / 박매일 강사님)'를 듣고 작성 및 발췌 했습니다.