[국비 학원 기록/자바]객체지향(OOP) 09.인터페이스, 인터페이스의 여러 가지 요소(default , static, private 메서드), 다중 상속
my code archive
article thumbnail
반응형
인터페이스의 여러 가지 요소

 1)상수
 

2)추상메서드

 

3)디폴트 메서드(java 1.8 이후)
     -구현을 가지는 메서드.
     -default 키워드 사용
     -구현하는 클래스에서 재정의할 수 있음.

 

4)정적 메서드(java 1.8 이후)
  -인스턴스 생성과 상관없이 인스턴스 타입으로 사용할 수 있는 메서드

 

5)private 메서드 (java 9 이후)
 -인터페이스를 구현한 클래스에서 사용하거나 재정의할 수 있음.
 -인터페이스 내부에서만 사용하기 위해 구현하는 메서드
 -default 메서드나 static 메서드에서 사용함.

 

사용 예시

인터페이스의 모든 메서드는 추상 메서드로 선언됨, 모든 변수는 상수로 선언됨.
-> public abstract & public static final 은 생략해도 컴파일러가 자동으로 추가해줌.

구현 클래스는 반드시 인터페이스에 선언되어 있는 추상메서드를 재정의 해야함!!!

default 메서드 추가했을 때

구현 클래스에서 재정의한 메서드가 우선적으로 호출됨.

구현 클래스의 재정의 부분을 주석 처리하고
private 메서드를 추가해도

잘 출력된다!

 

여러 인터페이스 구현하기, 인터페이스 다중 상속

1)여러 인터페이스 구현

  -자바의 인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스를 구현할 수 있음.

  -디폴트 메서드가 중복되는 경우는 구현하는 클래스에서 재정의하여야 함.

  -여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형변환되는 경우 해당 인터페이스에 선언된 메서드만 사용 가능함.

, 콤마 사용해서 여러 인터페이스 구현 가능
역시 추상 메서드는 재정의해주어야 함.

디폴트 메서드가 중복되는 경우는 구현하는 클래스에서 재정의하여야 함.
->order() 가 buy / sell에 중복되기 때문에 발생하는 에러

여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형변환되는 경우
해당 인터페이스에 선언된 메서드만 사용 가능함.

->그래서 order() , sell() 만 보인다.

 

2)인터페이스의 상속

  -인터페이스 사이에도 상속을 사용할 수 있음.

  -extends 키워드를 이용.

  -인터페이스는 다중 상속이 가능하고 구현 코드의 상속이 아니므로 타입 상속이라고 함.

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형