반응형
인터페이스의 여러 가지 요소
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 키워드를 이용.
-인터페이스는 다중 상속이 가능하고 구현 코드의 상속이 아니므로 타입 상속이라고 함.
반응형
'📒 education archive > 🎀JAVA' 카테고리의 다른 글
[국비 학원 기록/자바] 컬렉션프레임워크 ArrayList, HashMap, LinkedList, ... (0) | 2021.10.18 |
---|---|
[국비 학원 기록/자바] Object 클래스, String 클래스, Class 클래스, Wrapper 클래스 (0) | 2021.10.18 |
[국비 학원 기록/자바]객체지향(OOP) 08.추상클래스, 인터페이스 (0) | 2021.10.13 |
[국비 학원 기록/자바]객체지향(OOP) 07.다형성, 형변환, Upcasting , Downcasting, 매개변수의 다형성 (0) | 2021.10.11 |
[국비 학원 기록/자바]객체지향(OOP) 06.상속, 오버라이딩,오버로딩 (0) | 2021.10.11 |