-
추상 클래스(abstract class)JAVA 2023. 3. 2. 20:50
추상 클래스 : 객체를 생성할 수 있는 클래스(실체 클래스)들의 공통적인 필드나 메소드를 추출해서 선언한 클래스
- 한 클래스 안에 추상 메소드가 하나 이상 존재하면 그 클래스도 추상 클래스로 만들어야 한다.
- 추상 클래스에는 객체를 정의할 수 없다.
- 추상 메소드와 인스턴스 메소드가 혼재될 수 있다.
- 추상 클래스를 상속받는 하위 클래스들은 반드시 추상 메소드를 강제로 오버라이딩해야 한다.
- 동일한 상위 클래스를 상속받는 하위 클래스에 동일한 이름의 상위 클래스 메소드를 사용하도록 규격화할 때 추상 클래스를 사용
- 사물들의 공통적인 특징을 추상화(= 단순화)하면 쉽게 제어할 수 있다.
※ java는 다중 상속(서로 다른 클래스를 동일 단계의 상위 클래스로 하여 상속받는 것)을 허용하지 않음.
추상 클래스 선언
- 클래스 선언 시 abstract 키워드를 class 키워드 앞에 추가하면 추상 클래스가 된다.
public abstract class 클래스명 {//필드//생성자//}
추상 메소드
- 선언부(리턴타입, 메소드명, 매개변수)는 동일하지만 추상 클래스를 상속받는 각각의 클래스마다 실행 내용은 다른 메소드
- 추상 메소드는 추상 클래스에 실행 내용을 작성하지 않는다.
모든 자식 클래스에서 공통으로 사용해야 하는 메소드라는 것을 의미
실행 내용은 상속받는 클래스에서 재정의 시 작성한다. - 추상 클래스에서 메소드 선언 시 리턴타입 앞에 abstract 키워드를 추가하면 추상 메소드가 된다.
메소드 블록(중괄호 {}) 없이 세미콜론(;)으로 마무리한다.
abstract 리턴타입 메소드명(매개변수, ...);
'JAVA' 카테고리의 다른 글
익명 클래스(Anonymous Class) (0) 2023.03.02 인터페이스(Interface) (0) 2023.03.02 다형성(Polymorphism) (0) 2023.03.02 final 키워드 (0) 2023.03.02 접근 제한자(access modifier; 접근 제어자) (0) 2023.03.02 - 한 클래스 안에 추상 메소드가 하나 이상 존재하면 그 클래스도 추상 클래스로 만들어야 한다.