객체는 관계를 맺는다 - 상속과 구현

객체 간의 관계

  • 자바는 객체지향 언어
  • 객체지향언어는 객체 간의 협력이라는 관점 아래 프로그래밍
  • 서로 관계를 맺는데 그 중 중요한 상속 관계와 인터페이스 구현 관계에 대해 공부한 내용을 정리하였음

자바 객체지향의 상속과 인터페이스

  • 자바는 객체지향 상속을 extends로 구현했음
    • 확장(extends) 의미
    • 구체화(특수화) 의미 : is a kind of
    • 분류도를 만들어나감
  • 자바는 다중 상속 안되게 막아놓음 : 지원한다면 개발자가 고려해야할게 많아짐 - 필드, 메소드명 중복되었을 때
  • 객체의 인터페이스로 능력 확장이 가능함 : is able to
    • 다중 상속은 못하지만 여러 능력을 갖출 순 있음
    • 인터페이스 또한 다형성을 이용한 프로그래밍이 가능함
public class 박쥐 extends 포유류 implements 날수있는 {

    @Override
    public void fly() {

    }
}

포유류 포유류1 = new 박쥐();
날수있는 나는아이1 = new 박쥐();
  • 쓰고 싶은 메소드에 따라 타입을 달리해서 그에 맞게 사용할 수 있는 장점이 있음
    • 포유류만 컬렉션에 넣어서 사용할 수도 있음
    • 날수있는애만 모아서 fly() 메소드를 호출시킬 수 있음
  • 내부적으로 상위 타입 인스턴스 생성하고 하위 타입에서 오버라이딩한 메소드 호출함