추상 클래스
추상 클래스
- 클래스를 작성할 때 메서드를 구현하지 않고 선언만 해 놓은 메서드를 추상 메서드라고 한다
- 추상 메서드는 구현 되지 않은 메서드이므로 메서드를 구현을 해야지만 사용이 가능하다
- 추상 메서드는 접근 제한자와 리턴 타입 중간에 abstract라는 키워드를 붙여준다
구현된 메서드
public void method( ) {
}
구현 되지 않은 메서드
public abstract void method( );
추상 클래스
- 추상 메서드를 하나라도 가진 클래스를 추상 클래스라고 부른다
- 추상 클래스는 구현되지 않은 메서드인 추상 메서드를 가지고 있기 때문에 직접 객체 생성할 수 없다
- 추상 클래스의 기능을 사용하기 위해서는 반드시 추상 클래스를 상속받는 서브 클래스가 있어야 한다
- 추상 클래스를 상속받은 서브 클래스는 추상 메서드를 반드시 구현해야 한다
- 추상 클래스는 접근 제한자와 class 키워드 사이에 abstract를 붙여 준다
- 추상 클래스를 사용하면 특정 메서드의 구현에 대한 강제성을 줄 수 있다
public abstract class ClassName{
}
AbstractTest.java
----------------------------------------------------------------------------------------------------------
Human h = new Human( );
h.sayHi( );
Animal a = new Human( );
a.sayHi( );
Animal a2 = new Animal( ) {
@Override
public void sayHi( ) {
// TODO Auto-generated method stub
System.out.println("반갑습니다");
}
};
a2.sayHi( );
abstract class Animal {
public abstract void sayHi( );
}
class Human extends Animal {
@Override
public void sayHi( ) {
// TODO Auto-generated method stub
System.out.println("안녕하세요");
}
}
----------------------------------------------------------------------------------------------------------
Console
----------------------------------------------------------------------------------------------------------
안녕하세요
안녕하세요
반갑습니다
----------------------------------------------------------------------------------------------------------