7.1 추상 클래스
추상 클래스
:완전하게 구현되어 있지 않은 메소드를 지니고 있는 클래스
-하나 이상의 추상 메소드를 지닐 것
-추상 메소드는 세미 콜론(;)으로 종료할 것
객체 생성 불가(메소드 미완성)
자식클래스에서의 메소드 재정의 강제성
하지 않을 경우 컴파일 오류 발생
Ex)
public abstract class Animal {
public abstract void move();
...
};
~~Shape s1 = new Shape();~~ // 추상 클래스로 객체 생성 불가
Shape s2 = new Circle(); // OK
s2.draw();
< 추상 클래스의 용도 >
-서브 클래스에서 구현을 강요하는 면에서 장점이 있다.
*중간점검
1. 추상 클래스는 어떤 용도로 사용되는가?
:공통 기능을 정의하고, 자식클래스가 이를 확장하여 구체적인 구현을 하도록 만들기 위해 사용됨.
2. 추상 클래스는 추상 메소드가 아닌 일반 메소드를 가질 수 있는가?
:가능하다.
3. 추상 클래스만으로 객체를 생성할 수 있는가?
:불완전한 클래스이기 때문에 직접 인스턴스화가 불가능하다.
이를 상속한 하위 클래스에서 구현을 완료한 뒤, 객체를 생성하여야 한다.