본문 바로가기
Java/study

추상 클래스 / 추상 메서드

by avvin 2019. 4. 9.

추상클래스 


개념 


자식클래스들의 공통적인 특성(공통되는 필드와 메서드)들만 따로 추출하여 선언한 부모클래스

객체를 직접 생성해서 사용할 수 없다. (= 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