추상 클래스
- 객체를 직접 생성할 수 있는 클래스들의 공통적인 특성을 추출해 선언한 클래스를 말한다.
- 추상 클래스와 실체 클래스는 상속의 관계를 지닌다.
- 추상 클래스가 부모이고 실체 클래스가 자식으로 구현된다.
- 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성(필드, 메소드)을 지닐 수 있다.
- 실체 클래스의 공통되는 필드와 메소드를 추출해 만들어졌으므로 new 연산자를 통해 인스턴스를 생성시키지 못한다.
- 추상 클래스는 새로운 실체 클래스를 만들기 위한 부모 클래스로만 사용된다.
추상 클래스를 만드는 이유는 무엇일까?
- 실체 클래스들의 공통된 필드와 메소드의 이름 통일
- 실체 클래스 작성 시간 절약
추상 클래스 선언
public abstract class 클래스 {
// 필드
// 생성자
// 메소드
}
자식 객체가 생성될 때 super(...)를 호출해 추상 클래스 객체를 생성하므로 추상 클래스도 반드시 생성자가 있어야 한다.
추상 메소드와 오버라이딩
- 추상 메소드란, 메소드의 선언만 통일화하고, 실행 내용은 실체 클래스마다 달라야 하는 경우 추상 클래스에서만 선언 가능한 메소드를 말한다. (중괄호 {} 없음)
- 추상 클래스를 설계할 때, 자식 클래스에서 정의하도록 하고 싶은 메소드가 있는 경우 해당 메소드를 추상 메소드로 선언하면 된다.
- 자식 클래스는 반드시 추상 메소드를 Overriding해 정의해야 한다.
[public | protected] abstract 리턴타입 메소드명(매개변수, ...);
참고 서적 : 이것이 자바다 신용권의 Java 프로그래밍 정복
'Web > Java' 카테고리의 다른 글
Stream - (1) 스트림이란? (0) | 2021.07.12 |
---|---|
인터페이스 (Interface) (0) | 2021.03.30 |
Array와 Collection Framework의 차이는?! (0) | 2021.03.26 |
Exception, 개발자의 숙명! (0) | 2021.03.24 |
객체 지향 프로그래밍 OOP(Object Oriented Programming) 란? (0) | 2021.03.17 |
댓글