is-A는 “A는 B의 한 종류다” 라고 말할 수 있는 관계이다.
주로 상속에서 사용된다.
예시:
class Dog extends Animal {
}
has-A는 “A는 B를 가지고 있다” 라고 말할 수 있는 관계이다.
주로 객체를 필드로 포함할 때 사용된다.
예시:
class Car {
private Engine engine;
}
추상모 클래스이다.
is-A 관계가 자연스러울 클래스는 공통 속성과 기능을 물려주기 위한 부때 사용한다.
abstract class Animal {
void eat() {
System.out.println("먹는다");
}
abstract void sound();
}
인터페이스는 반드시 구현해야 할 기능 규칙을 정하는 것이다.
can-do 관계, 즉 “~할 수 있다” 가 자연스러울 때 사용한다.
interface Flyable {
void fly();
}