1. 추상 클래스
: 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 추상 클래스는 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를의미한다.
추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다. 즉, 추상 클래스는 new 연산자를 사용해서 인스턴스를 생성시키지 못한다.
Animal animal = new Animal(); // (X)
*추상 클래스는 실체 클래스를 만들기 위해 부모 클래스로만 사용된다. (extends 뒤에만 올 수 있는 클래스)
class Ant extends Animal { ... } // (O)
※실체 클래스들의 공통적인 특성을 뽑아 추상 클래스로 만드는 이유?
- 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적
- 실체 클래스를 작성할 때 시간을 절약하기 위한 목적
-추상 클래스 선언
: 추상 클래스를 선언할 때에는 클래스 선언에 abstract 키워드를 붙여야 한다.
public abstract class 클래스 {
// 필드
// 생성자
// 메소드
}
->추상 클래스도 일반 클래스와 마찬가지로 필드, 생성자, 메소드 선언을 할 수 있으며 new 연산자로 직접 생성자를 호출할 수는 없지만 자식 객체가 생성될 때 super(...)를 호출해서 추상 객체를 생상허라므로 추상 클래스도 생성자가 반드시 있어야한다.
2. 추상 메소드
'Programming > JAVA' 카테고리의 다른 글
자바의 인터페이스 (0) | 2020.01.09 |
---|---|
자바 상속의 개념 (0) | 2020.01.03 |
자바의 접근 제한자 (0) | 2019.12.30 |
자바의 클래스 (0) | 2019.12.27 |
자바의 참조 타입과 배열 (0) | 2019.12.23 |