JAVA
day09) 추상 메서드, 추상 클래스
code_learner
2021. 12. 31. 23:41
추상메서드
- 일반 메서드에서 메서드 시그니쳐 부분만 정의하고 구체적인 내용은 비워 놓은 메서드=> 바디를 구현하면 오류
- 추상메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모 클래스의 추상메서드를 구현해야한다.
=> 자식이 메서드를 오버라이딩 하게 강제하기 위해 존재한다.
구현방법: abstract 리턴타입 메서드명( );
추상클래스
- 추상메서드를 멤버로 갖는 클래스
- 일반메서드를 멤버로 가질 수 있다.
- 추상메서드가 하나라도 포함되어 있다면 추상클래스가 되어야 한다.
- 객체를 생성 할 수 없다.
=>구현은 자식 클래스가 하도록 메서드의 기능을 비워놓고 싶을 때 사용!
구현방법: abstract class 클래스명{ 추상메서드 }
abstract class Shape{//추상클래스
String name;
Shape(String name){
this.name=name;
}
void f() {
System.out.println("추상클래스에서 출력");
}
abstract void draw();//추상메서드
}
class Circle extends Shape{
public Circle(String name) {
super(name);
}
@Override
void draw() {
System.out.println(name+"을 그림");
}
}
public class Test01InterAbstract {
public static void main(String[] args) {
Circle c = new Circle("도넛");
c.draw();
c.f();//추상클래스에서 일반 메서드 사용가능
//결과
//도넛을 그림
//추상클래스에서 출력
}
}