Java
[자바/Java] 추상 클래스(Abstract Class)
F12:)
2023. 7. 10. 14:41
추상 클래스란?
: 공통적인 기능을 부모 클래스에로 정의해서 상속받되 일부 공통 기능은 자식 클래스에서 구현하도록 강제하는 것.
추상 클래스의 특징
- 구체적이지 않고 일반화된 클래스
- 객체들 간의 공통적인 기능을 정의한 클래스
- 기능의 구체적인 내용 구현은 자식 클래스에게 일임
- 추상 클래스는 단독으로 인스턴스를 만들 수 없음
- 상속을 통해 자식클래스에서 인스턴스를 생성
추상 클래스 선언하기
- 클래스 선언 부에 abstract 키워드 사용
- 추상 클래스의 멤버 : 필드, 생성자, 메소드
아래는 추상 클래스의 대표적인 예이다.
public abstract class Student {
private final String name;
Student(String name){
this.name = name;
}
public String getName() {
return this.name;
}
abstract void study(String subject);
}
쉽게 말하면 추상 메소드를 가지고 있는 클래스를 추상 클래스라고 칭한다. 위의 코드에서 알 수 있듯이, 추상 메소드란 구현부가 존재하지 않는 메소드를 의미하며, 이 추상 클래스를 상속받는 클래스가 이 추상 메소드를 강제로 Override해야한다.
아래는 추상 클래스인 Student를 상속받은 클래스를 보여준다.
public class JavaStudent extends Student{
JavaStudent(String name){
super(name);
}
@Override
void study(String subject) {
System.out.println("추상 클래스를 Override");
}
}
위와 같이 추상 메소드인 study를 자식 클래스가 강제로 Override하여 어노테이션까지 사용한 것을 알 수 있다.
이와같이 "공통 기능"을 추상화하여 선언한 클래스를 추상 클래스라고 한다.