추상 클래스
부모 클래스에서 상속을 받는 자식클래스가 있지만, 부모 클래스의 메서드를 상속받는 자식 클래스마다 메서드의 내용이 다를 때 사용한다.
자식클래스마다 내용이 다른 메서드를 선언할 때, 메서드 바디 부분은 생략하고 abstract를 붙인다.
단, 메서드에 abstract를 선언하면 부모 클래스 선언문에도 abstract를 붙인다.
abstract class Employee{
String name;
int salary;
public abstract void calcSalary();
}
부모 클래스에 추상 클래스를 선언한 뒤, 자식 클래스는 extends 를 붙여 상속받은 후, 추상 메서드를 오버라이딩(재정의)하여 선언한다.
public class Manager extends Employee{
@Override
public void calcSalary() {
System.out.println("Manage salary");
}
}
public class Salesman extends Employee{
@Override
public void calcSalary() {
System.out.println("Salesman salary");
}
}