상속은 Is-A관계에서 사용하는 것이 가장 효율적이다.
Is-A 관계는 일반적인 개념과 구체적인 개념의 관계이다.예를 들어
출력 예시
public class Human {
String name;
int age;
int sex;
}
//Student 클래스가 Human클래스를 상속 받고 있다.
public class Student extends Human{
int number;
int major;
}
위 코드에서 "학생은 사람이다"
이러한 관계를 위처럼 표현했을 때 Is-A관계라고 한다.
출력 예시
public class Gun{
String name;
int shot;
}
//필드명이 Gun타입의 gun으로 되어 있는 것을 Has-A관계라 한다.
public class police{
Gun gun;
}
위와 같이 "경찰은 총을 가진다"의 구조로 경찰 클래스안에
권총 클래스의 객체를 멤버로 가지고 있는 경우를 Has-A관계라 한다.