1. 상속과 다형성
private 접근제어자는 상속 불가능
# 상속 : 부모 클래스의 필드와 메서드를 자식 클래스로 확장
# 다형성 : 부모 클래스 타입으로 자식 클래스 인스턴스 넣어 사용 가능
상속관계에 있으면 다형성 고려 : 부모타입에 자식타입 선언
주의사항은 부모타입으로 자식 인스턴스를 생성하고 자식타입 고유 메서드는 호출할 수 없음
2. 오버라이딩 (재정의)
# 오버라이딩 : 부모 클래스에서 상속받은 메서드를 자식 클래스에서 다시 정의하는 것
메서드의 시그니처(메서드 이름, 파라미터, 리턴타입)가 다 같아야 함
특이사항은 부모타입으로 자식 인스턴스를 생성하고 자식타입 오버라이딩 메서드는 호출할 수 있음
자식 클래스의 @Override 어노테이션을 주석하고 실행하면 잘 실행됨
부모 클래스의 메서드를 주석하고 실행하면 실행 안됨 - 오버라이드 대상이 사라졌기 때문
3. 오버로딩 (중복정의)
# 오버로딩 : 동일한 메서드 이름으로 파라미터, 리턴 타입이 다른 메서드를 여러 개 정의하는 것
같은 이름의 메서드로 여러 개의 파라미터(종류나 순서)나 리턴 타입이 다른 메서드를 정의하는 것
각 파라미터에 대해 알맞은 메서드로 호출이 된다.
파라미터는 같지만 return 타입만 다르게 오버로딩은 불가능 - 메서드 호출하는 입장에서 파라미터가 다른건 구분할 수 있지만, 같은 파라미터에 return만 다르면 어떤 메서드를 호출해야 할지 알 수 없음
4. 상속 관련 주의사항
1) 객체지향 관점에서 올바른 상속
메서드 재사용 위한 상속X (문법은 O)
-> 메서드 재사용 시, 전략 패턴 구성(Composite) 활용
필드에 대한 재사용 위한 상속O
2) 부모 타입이 할 수 있는 일은 자식 타입도 할 수 있어야함
리스코프 치환 원칙 지키는 상속 : 진정한 다형성 있는 상속
참고링크 : https://school.programmers.co.kr/learn/courses/17778/17778-%EC%8B%A4%EB%AC%B4-%EC%9E%90%EB%B0%94-%EA%B0%9C%EB%B0%9C%EC%9D%84-%EC%9C%84%ED%95%9C-oop%EC%99%80-%ED%95%B5%EC%8B%AC-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4
실무 자바 개발을 위한 OOP와 핵심 디자인 패턴
@media (max-width: 991px) { .content { width: 100%; } } #landingPage { width: 100%; max-width: 848px; padding: 0 20px; letter-spacing: -0.02em; overflow-wrap: break-word; word-break: keep-all; word-wrap: break-word; } @media (max-width: 991px) {
school.programmers.co.kr
'강의 실습 > 실무 자바 개발을 위한 OOP와 핵심 디자인 패턴' 카테고리의 다른 글
| Object 클래스 (1) | 2026.01.24 |
|---|---|
| 예외 (0) | 2026.01.22 |
| Enum (0) | 2026.01.21 |
| 추상 클래스와 인터페이스 (0) | 2026.01.20 |
| 객체지향적으로 개발해야하는 이유 (0) | 2026.01.17 |
댓글