추상 클래스
- 추상, 추상적: 구체성이 없는 일반화된 것
- 추상 클래스: 구체적이지 않고 일반화된 클래스
- abstract class라고 함
- 실체 클래스는 concrete 클래스라고 함
- 공통적인 기능을 부모 클래스로 정의해서 (자식클래스에서)상속받되,
일부 공통 기능은 자식 클래스에서 구현하도록 강제하는 것
추상 클래스의 필요성
- 자식 클래스들의 공통 기능이지만 부모 클래스의 시점에서 공통 기능의 구체적인 내용을 구현할 수 없을 때 사용한다
추상 클래스의 특징
- 구체적이지 않고 일반화된 클래스
- 객체들 간의 공통적인 기능을 정의한 클래스
- 기능의 구체적인 내용 구현은 자식클래스에게 일임
- 추상클래스는 단독으로 인스턴스를 만들 수 없음
- 상속을 통해 자식 클래스에서 인스턴스를 생성
추상 클래스 선언
- 클래스 선언부에 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);
}
추상클래스의 상속 및 재정의
public class JavaStudent extends Student{
JavaStudent(Strnig name){
super(name);
}
//추상 메소드 재정의(오버라이딩)
@Override
void study(String subject){
System.out.println("자바 입문 강의");
System.out.println(subject + "를 공부합니다");
}
}
'Language > java' 카테고리의 다른 글
java 기본 12: 인터페이스 (1) | 2023.01.05 |
---|---|
java 기본 11: 클래스 형변환 (0) | 2023.01.05 |
java 기본 9: 접근 제한자(public/protected/friendly/default/private) (0) | 2023.01.05 |
java 기초 8: 상속 (0) | 2023.01.05 |
java 기초 7: String 클래스 (0) | 2023.01.04 |