인터페이스

위수현·2023년 1월 31일
0
post-thumbnail

추상클래스의 한계

🔎 자바 클래스간의 상속에서는 하나의 부모만 존재할 수 있기 때문에, 앞의 상황에서 요구하는 다중 상속의 구현은 불가능하다.

인터페이스란?

🔎 완벽한 추상화를 구현하기 위한 java Class의 한 종류
🔎 다중 상속이 가능하기 때문에 용도별로 세분화하여 필요한 요소만 상속할 수 있다.

추상클래스 vs 인터페이스 차이점

<추상클래스>

🔎 멤버변수, 생성자, 메서드, 추상메서드를 포함할 수 있다.
🔎 이 클래스를 상속받는 자식 클래스는 다른 클래스를 상속 받을 수 없다.
🔎 객체의 생성이 불가능하다.

<인터페이스>

🔎 추상 메서드만 포함할 수 있다.
🔎 인터페이스는 다중 상속이 가능하다.
🔎 객체의 생성이 불가능하다.

Implements vs extends 차이점

🔎 implements 장점은 부모클래스의 메서드를 반드시 Override 해야하지만, 한 가지의 클래스만 상속할 수 있는 'extends'와는 다르게 여러 개의 클래스를 상속받을 수 있다.

인터페이스 다이어그램 예시


-> 인터페이스 파일을 만들었을 때 위와 같이 자바 프로젝트에 'I'라고 기재된다.

🔎 다음과 같은 다이어그램 설계를 통해 다중 상속이 가능하다는 점을 이용해 소스를 작성해본다.

<인터페이스>

기본적으로 인터페이스에 추가되는 모든 메서드는  
추상메서드이기 때문에, 
'abstract' 키워드를 명시할 필요가 없다

<클래스>

<메인 & 출력값>

profile
수현

0개의 댓글

관련 채용 정보