•
abstract (추상) 가 메서드에 있다면 클래스는 무조건 abstract 를 가져야한다.
•
추상클래스를 상속받은 자식클래스 → 무조건 부모의 메서드를 Override 해야한다.
→ 자식 클래스가 구현하라는 뜻
•
추상 클래스 내에 일반 메서드가 올 수도 있다.
추상 클래스를 왜 쓰는가?
1.
일반 클래스로 메서드를 오버라이딩 하게되면 자식 클래스가 부모 클래스의 메서드에 영향을 줄 수 있음. 그렇기에 부모 클래스의 메서드를 비워두고 자식 클래스가 각자 사용할 수 있도록 추상 클래스를 사용(정보은닉, 변수로 private를 사용하는 것과 비슷함.)
이렇게 값 변동을 막기 위한 요소들이 프로그래밍에는 여럿 존재한다.
2.
반드시 Override 해야 하는 함수라면 사용
→ 추상 메서드는 Override 안하면 오류남
예제 코드
abstract class Animal {
public abstract void move(); // 함수 바디를 구현하지 않겠다.
}
class Lion extends Animal {
@Override
public void move() {
System.out.println("사자의 move 메서드 입니다...어흥");
}
}
public class Abstract {
public static void main(String[] args) {
// Animal animal = new Animal(); // 혼자서 쓸수 없다. 컴파일 에러남
Animal animal = new Lion();
Lion lion = new Lion();
lion.move();
}
}
Java
복사