추상클래스
개념
자식클래스들의 공통적인 특성(공통되는 필드와 메서드)들만 따로 추출하여 선언한 부모클래스
객체를 직접 생성해서 사용할 수 없다. (= new를 사용해 인스턴스 생성 못한다.)// 그럼 super()로는? 아래 설명
extends 뒤에만 올 수 있는 클래스.
용도
①여러사람이 함께 코딩할 경우, 필드와 메서드 이름 통일하기 좋다.
②자식클래스는 부모클래스 특성을 상속받고 추가적인 특성만 작성해주면 되므로 시간이 절약됨
추상클래스 선언
접근제한자 abstract class 클래스명{
//필드
//생성자
//메서드
}
new를 통한 객체 생성은 안되지만, 자식개체를 생성할 때 자식개체의 생성자 첫째줄에서 super()로 부모객체를 생성하므로
추상클래스에도 생성자는 반드시 있어야한다.
추상 메서드와 오버라이딩
추상클래스는 추상메서드 선언 가능
추상 메서드
메서드 선언부만 있고 실행내용(중괄호)가 없다.
public abstract void 메서드명();
이렇게 추상메서드를 선언해놓으면 하위 클래스에서 반드시 오버라이드하여 매서드 실행 내용을 작성해야만한다. 빼먹으면 컴파일 오류 발생
오버라이드 형식은 기존 자식클래스의 오버라이드 형식과 같다. (오버라이드 어노테이션사용)
'Java > study' 카테고리의 다른 글
Calendar class의 객체는 싱글톤일까? (0) | 2019.04.10 |
---|---|
static (0) | 2019.04.10 |
Getter Setter 단축키 (0) | 2019.04.09 |
타입변환과 다형성 (0) | 2019.04.09 |
접근제한자 (0) | 2019.04.09 |