728x90
728x90
추상 클래스 (Abstract class)
- 하나 이상의 추상 메서드를 포함하거나, abstract 키워드를 가진 클래스
- 추상적인 개념
→ 화면에 나타낼 수 없는 것들 ex) 게임
- 인스턴스화를 할 수 없음 (new 키워드 사용 불가)
→ 오류 : 부모클래스 참조변수 = new 부모클래스();
→ 업 캐스팅 가능 : 부모클래스 참조변수 = new 자식클래스();
// 추상 클래스
접근제어자 abstract class 클래스명 {
...
// 추상 메서드
접근제어자 abstract 반환자료형 메서드명(매개변수);
}
# 추상 메서드
- 구현 코드 없이 메서드의 선언만 있는 메서드 (중괄호 {}가 없음)
- 추상 클래스에 추상 메서드가 없을 수는 있음
→ 그러나, 추상 메서드가 있으면 반드시 추상 클래스가 되어야 함 (강제성)
- 추상 메서드는 자식 클래스가 상속받아서, 메서드 오버라이드를 통해 코드를 구현함
⇒ 추상 메서드 : 자식 클래스가 구현해야 하는 메서드
추상 클래스의 상속
// 1. 부모 클래스와 동일하게 추상 클래스로 정의하는 경우
public abstract class 자식클래스명 extends 부모클래스명 {
...
}
-------------------------------------------------------
// 2. 부모 클래스와 다르게 일반 클래스로 정의하는 경우
public class 자식클래스명 extends 부모클래스명 {
// 메서드 오버라이드 : 부모의 추상 메서드를 일반 메서드로 재정의
@Override
public 반환자료형 메서드명(매개변수) {
super.메서드명(); // 부모 메서드 호출
...
}
}
- 자식 클래스를 일반 클래스로 구현하려면 부모 클래스의 모든 추상 메서드를 재정의해야 함
320x100
반응형
'Java > Base' 카테고리의 다른 글
[Java] String 클래스의 메서드 (0) | 2023.02.13 |
---|---|
[Java] 배열 - 오름차순 정렬 (0) | 2023.02.11 |
[Java] final 키워드 (0) | 2023.02.11 |
[Java] 문자열 자료형 (String) (0) | 2023.02.10 |
[Java] 상속 관계의 다형성과 참조형 형 변환 (0) | 2023.02.09 |