| 1. Basics | 클래스, 객체, 변수, 메서드 // 생성자, 초기화 |
| 2. Advanced | 상속, 오버라이딩 // package, import, modifiers, 다형성 // 추상클래스, interface, 내부클래스 |
| 7. 추상클래스(abstract class) | 1. 추상클래스 2. 추상메서드 3. 추상클래스의 작성 |
7.1 추상클래스
'미완성 설계도'
abstract class 클래스이름 {
}
- 추상클래스의 특성
-추상클래스로부터 인스턴스 생성 불가
*계승을 통해 하위클래스에 의해 인스턴스 생성
-추상메서드(미완성 메서드)를 하나 이상 포함하고 있음
-그 외 일반 클래스와 동일함(생성자, 멤버변수, 메서드 가질 수 있음) - 추상클래스를 쓰는 이유
-새로운 클래스를 작성하는 데 바탕이 되는 상위클래스로서 의미가 있음
Q. 왼쪽이 상위 오른쪽이 하위 class일 때 가능?
A. 추상클래스로부터 인스턴스 생성은 불가 하지만(Shape s = new Shape();) Shape s = new Circle();일 때는 가능하다는 말
Q. 그럼 굳이 Circle s = new Circle(); 안 하고 Shape s = new Circle();로 하는 이유?
A.

7.2 추상메서드(abstract method)
abstract 리턴타입 메서드이름(); //주석으로 메서드의 목적 기술
-선언부만 있고 구현부가 없는 메서드
-메서드의 내용이 계승받는 클래스에 따라 달리 구현될 수 있는 경우에 사용
-계승받는 하위클래스는 상위클래스에 있는 추상메서드를 상황에 맞게 적절하게 구현해야 함

7.3 추상클래스의 작성
-추상화: 클래스 간의 공통점을 찾아내서 공통의 상위 클래스를 만드는 작업
- 방법
1-여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하고 나서 하위클래스 만듦
2-기존 클래스의 공통적인 부분을 뽑아서 추상클래스를 생성
'CSE > CP1 이론' 카테고리의 다른 글
| CP1_06. 객체지향프로그래밍_Advanced_6. 다형성 (0) | 2024.06.10 |
|---|---|
| CP1_08. 객체지향프로그래밍_Advanced_인터페이스 (0) | 2024.06.10 |
| CP1_06.객체지향 프로그래밍_Basics_2 (0) | 2024.06.05 |
| CP1_07.객체지향 프로그래밍_Advanced_4. Modifier(제어자) (0) | 2024.05.29 |
| 12주차_객체지향프로그래밍 II. Advanced 3. Package와 import~ (0) | 2024.05.27 |