● 오늘의 ISSUE
다중상속이란 무엇이고 왜 써야하고 어떻게 써야하는지,
그리고 인터페이스는 무엇이고 왜 써야하고 어떻게 쓰는것인지 한번 알아보자.
● 인터페이스
◈. 인터페이스란.
- 모든 메서드가 추상 메서드인 경우를 말한다.
- 인터페이스 안의 모든 메서드는 선언만 된 상태일 뿐, 무슨 기능을 할지 '정의'되지 않은 상태다
- 인터페이스는 모든 메서드가 추상 메서드로 간주되기 때문에 abstract를 적지 않는다.
- 다중상속이 가능하다.
◈. 인터페이스를 써야하는 이유
- 동일한 목적 하에 동일한 기능을 보장하게 하기 위함
- 다형성을 이용하여 개발코드 수정을 줄이고 유지보수성을 높여줌
- 다중상속 활용
◈. 사용 조건
- interface 키워드 사용하여 선언
- implements 키워드를 통해 일반 클래스에서 인터페이스 구현
◈. 사용 문법
public interface 인터페이스명 {
//상수
타입 상수명 = 값;
//추상 메소드
타입 메소드명(매개변수, ... );
//디폴트 메소드
default 타입 메소드명(매개변수, ... ){
//구현부
}
}
정리
- 인터페이스는 추상메소드와 상수를 통해 강력한 강제성을 가지게 하여 인터페이스를 implements한 클래스가 동일한 동작을 수행하도록 보장. 또 JAVA8 부터 디폴트 메소드를 허용하면서 추가요건에 대한 대처를 할 수 있도록 유연성을 확보해줌.
TIP
*** 디폴트 메소드 : 디폴트 메소드를 정의하여 기본 구현부를 제공하고 만약 이
구현부가 마음에 안들면 각자 오버라이딩을 통해 재구현할 수 있도록
선택적인 상황을 부여하여 시스템 유지보수성 확보함.
>>> 추가 요건으로 불가피하게 반영을 해야할 때 디폴트메소드를 쓰면 효과적임.
● 다중상속
◈. 다중상속이란
- 다중상속을 사용하면 여러 슈퍼클래스에서 상속되는 클래스를 만들 수 있다.
- Java Class에서 지원하지 않는다.
- 특별하게 인터페이스에서만 사용이 가능하다.
◈. 다중상속은 언제 사용되고, 왜 클래스에서는 안되는가
- 인터페이스 구현 시 사용된다.
- 동일한 메서드를 가진 여러 부모를 상속받은 자식 클래스가 메서드를 상속받을 때 어떤 부모의 메서드를 상속받아야 하는지 파악이 불가능하기 때문에 사용이 불가하다.
예시)
- 인터페이스의 다중상속
public interface Father{
void tek();
}
public interface Mother{
void tek();
}
정리
- 인터페이스는 다중상속이 가능하고 클래스의 다중상속 문제를 피해갈 수 있다. 메서드가 정의되지 않았기 때문이다.
TIP
*** 인터페이스는 '구현된 메서드'가 없기 때문에, 다중상속이 가능하다.
'JAVA' 카테고리의 다른 글
(JAVA) Generics 개념 이해하기 (0) | 2024.09.20 |
---|---|
(JAVA) 예외처리 알아가기 (0) | 2024.09.20 |
(JAVA) 추상클래스의 개념 + instanceof 이해하기 (0) | 2024.09.20 |
(JAVA) 접근 제어자와 오버라이드 개념 (0) | 2024.09.20 |
(JAVA) 기본형 & 참조형 매개변수, 인스턴스 멤버와 클래스 멤버 (0) | 2024.09.20 |