객체는 관계를 맺는다 - 상속과 구현
객체 간의 관계
- 자바는 객체지향 언어
- 객체지향언어는 객체 간의 협력이라는 관점 아래 프로그래밍
- 서로 관계를 맺는데 그 중 중요한 상속 관계와 인터페이스 구현 관계에 대해 공부한 내용을 정리하였음
자바 객체지향의 상속과 인터페이스
- 자바는 객체지향 상속을 extends로 구현했음
- 확장(extends) 의미
- 구체화(특수화) 의미 : is a kind of
- 분류도를 만들어나감
- 자바는 다중 상속 안되게 막아놓음 : 지원한다면 개발자가 고려해야할게 많아짐 - 필드, 메소드명 중복되었을 때
- 객체의 인터페이스로 능력 확장이 가능함 : is able to
- 다중 상속은 못하지만 여러 능력을 갖출 순 있음
- 인터페이스 또한 다형성을 이용한 프로그래밍이 가능함
public class 박쥐 extends 포유류 implements 날수있는 {
@Override
public void fly() {
}
}
포유류 포유류1 = new 박쥐();
날수있는 나는아이1 = new 박쥐();
- 쓰고 싶은 메소드에 따라 타입을 달리해서 그에 맞게 사용할 수 있는 장점이 있음
- 포유류만 컬렉션에 넣어서 사용할 수도 있음
- 날수있는애만 모아서 fly() 메소드를 호출시킬 수 있음
- 내부적으로 상위 타입 인스턴스 생성하고 하위 타입에서 오버라이딩한 메소드 호출함