
실제 간의 공통되는 특성
ex. 삼각형, 원, 정사각형...
하나 이상의 추상 메소드⚠️를 포함하는 클래스
객체의 공통적인 특징을 추상화해서 추상 클래스에서 정의하고,
이를 상속받는 자식클래스에서 해당하는 추상 메소드를 구현 해야 함!
추상 클래스는 new 연산자를 통해 인스턴스 객체를 만들 수 없다
⚠️추상 메소드 : 선언만 있고, 구현되지 않은 메소드
// 추상 클래스
public abstract class Person {
private int age;
private String name;
...
abstract public void printName(); // 추상 메소드
}
// 이를 상속받는 자식 클래스
public Student extends Person {
...
public void printName() {
// 추상 메소드를 구현
System.out.println("학생" + getName());
}
}
⚠️추상클래스와 다른 점?
- 추상 클래스는 추상 메소드가 없어도 ⭕
- 인터페이스에는 추상 메소드가 없으면 ❌,
무조건 있어야 함! (추상 메소드만 존재)
인터페이스에서 정의하는 모드 필드는 public static final이 자동 적용
인터페이스 선언 시 class 키워드 대신 interface 키워드 사용
인터페이스 구현 시 extends 키워드 대신 implements 키워드 사용