- 추상 클래스
- 부모 클래스에 abstract키워드를 추가하면 추상 클래스를 선언할 수 있다
- 추상 메서드를 정의해줘야 한다
- 추상 메서드 : 메서드 내부의 동작을 정의하지 않고 리턴 타입, 매개변수, 메서드 이름만을 정해서 자식이 오버 라이딩해서 사용하도록 하는 메서드이다
- 일반 메서드도 동시에 존재할 수 있다

- 부모 클래스의 메서드가 동작할 필요가 없다면 추상적으로 이러한 매개변수를 받아와서 사용하면 된다 정도로 정의만 해주고 나머지 기능은 자식에게 위임하는 것이다
- 인터페이스
- 추상 메서드와 비슷하지만 모두 추상 메서드로 작성을 해야 된다는 것이 다르다
- 최근에는 추상 메서드가 아닌 메서드도 인터페이스 내부에 작성이 가능하지만 일반적으로 작성하지 않는다
- 필드에는 상수만 선언이 가능하다
- 인터페이스의 경우 해당 인터페이스를 받아올 클래스가 implements키워드를 사용해서 구현을 할 수 있다
- 인터페이스는 여러 개를 받아와서 구현이 가능한 것이 여러 특징 중 하나인데 자바에서는 다중 상속이 안되기 때문에 인터페이스를 통해서 다중 상속을 구현할 수도 있다