직접 생성 금지
기본 뼈대만 제공하므로 new로 바로 만들 수 없고 하위 클래스가 필요합니다.
abstract class Shape
인터페이스가 모양만 요구한다면 추상 클래스는 일부 동작을 제공하면서 하위 클래스가 채워야 할 메서드도 지정합니다.
기본 뼈대만 제공하므로 new로 바로 만들 수 없고 하위 클래스가 필요합니다.
abstract class Shape
하위 클래스마다 달라지는 동작은 선언만 두고 구현을 강제합니다.
abstract area()
여러 하위 클래스가 함께 쓰는 계산이나 검증 로직을 부모에 둘 수 있습니다.
move()
상태와 구현 공유가 없다면 더 가벼운 interface가 확장에 유리합니다.
interface Drawable