반응형
1. 추상 클래스의 정의
- 클래스들의 공통적인 필드와 메서드를 추출해서 선언하는 클래스
- 객체를 직접 생성 가능한 실체 클래스와 상속 관계를 가지고 있음
-> 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성 물려받고 추가 특성을 가짐
(특성: 필드와 메서드들을 말함)
2. 추상 클래스의 용도
- 공통된 필드와 메서드의 이름을 통일하여, 실체 클래스 작성 시 시간 절약
- 실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메서드가 제각기 다른 이름을 가질 수 있음
-> 데이터와 기능이 모두 동일해도 이름이 다르니 객체마다 사용 방법이 달라지므로,
추상 클래스에 공통 필드와 메서드를 선언하고, 실체 클래스에서 추상 클래스를 상속하여 필드와 메서드 이름을 통일
3. 추상 클래스 선언
- 클래스 선언 시 abstract 키워드를 붙여,
new 연산자를 이용하여 객체(인스턴스)를 직접 만들지 못하고 상속을 통해 자식 클래스만 만들 수 있게 함 - 추상 메서드는 구현되지 않으며 반드시 자식 클래스에서 오버라이딩
- 일반 메서드를 포함할 수도 있고, 해당 메서드를 자식 클래스에서 그대로 사용 가능
public abstract class 클래스명 {
// 필드
// 생성자
// 메서드
}
4. 추상 메서드 오버라이딩
- 부모 클래스에서 선언한 추상 메서드를 자식 클래스에서 구현하는 과정
-> 부모 클래스의 추상 메서드를 반드시 자식 클래스에서 구현해야 함 - @Override 어노테이션을 사용하여 더욱 명확하게 재정의(오버라이딩)
- 상속을 활용하여 코드의 재사용성과 유지보수성을 향상
반응형
'자바(JAVA) > 미니 프로젝트 & 기초 공부' 카테고리의 다른 글
Java 기초 또 다시 공부하기 14일차 - 중첩 클래스와 중첩 인터페이스(중첩 클래스와 중첩 인터페이스 개요, 익명 객체) (0) | 2025.06.17 |
---|---|
Java 기초 또 다시 공부하기 13일차 - 인터페이스, 인터페이스의 타입 변환과 다형성 (2) | 2025.06.16 |
Java 기초 또 다시 공부하기 11일차 - 상속(상속, 클래스의 타입 변환과 다형성) (0) | 2025.06.12 |
Java 기초 또 다시 공부하기 10일차 - 객체 지향 프로그래밍(인스턴스 멤버와 정적 멤버, 패키지와 접근 제한자) (0) | 2025.06.11 |
Java 기초 또 다시 공부하기 9일차 - 객체 지향 프로그래밍(필드, 생성자, 메서드) (0) | 2025.06.05 |