인터페이스간의 상속

eunu·2024년 2월 14일
0

JAVA

목록 보기
10/21

다중상속

라이거 동물처럼 여러 부모에게 상속받는 것

C언어에서는 클래스간의 다중상속을 지원하나, JAVa에서는 지원하지 않음(인터페이스로 일부분만 지원함)

→다중상속은 코드의 가독성이 떨어진다는 문제가 있음. 그러나 장점도 존재하기 때문에 자바에서는 일부분만 지원하는 것.

—> but, 이러면 상속받은 인터페이스들 중 하나만 타입으로 했을 때 오류가 남.

모든 상속받은 부모 타입으로 바꿔서 클래스를 만들 수 있게 하려면(다형성 충족)

인터페이스간에 상속을 하면 됨

인터페이스간의 상속

  • 상속 없었을 때 부모 인터페이스1{ 메소드1 } 부모 인터페이스2{ 메소드2 } 자식 클래스 implements 부모1, 부모2{ 오버라이드 메소드1 오버라이드 메소드2 } 부모1 변수아무거나 = new 자식클래스(); 변수아무거나.메소드1(); 변수아무거나.메소드2(); —> 오류남
  • 상속할 때 조부모 인터페이스{ 메소드1 메소드2 } 부모 인터페이스1 extends(인터페이스 상속) 조부모{ } 부모 인터페이스2 extends(인터페이스 상속) 조부모{ } 자식 클래스 implements 부모1, 부모2{ 오버라이드 메소드1 오버라이드 메소드2 } 부모1 변수아무거나 = new 자식클래스(); 변수아무거나.메소드1(); 변수아무거나.메소드2(); —> 오류 안 남

이러면 자식 객체는 조부모, 부모1, 부모2, 자식 총 4개의 모양으로 볼 수 있게 됨! —> 이게 바로 다형성!

질문!

Q. 부모 1, 부모2 인터페이스는 뭐하러 만들어요?

A. → 각 부모별 다른 메소드가 필요할 때 만드는 거니까 그러면 됨!

profile
Just Do It

0개의 댓글