인터페이스(interface)
-추상 메서드의 집합 <- 프로그래밍 관점
-구현된 것이 전혀 없는 설계도. 껍데기(모든 멤버가 public)
-아무것도 없음, 추상 메서드만 적어놓음
- public abstract 생략 가능 왜냐하면 interface는 항상 public abstract이기 때문에
- 상수는 항상 public static final임
인터페이스의 상속
-인터페이스의 조상은 인터페이스만 가능(Object가 최고 조상 아님)
- 다중 상속이 가능.(추상 메서드는 충돌해도 문제없음) -> 조상이 여러 개
- 선언부가 다르면 둘 다 상속받으면 그만인데. 선언부가 같고 내용{}이 다르면 어느 쪽을 상속받을지 결정할 수 없다. -> 이럴 때 충돌이 발생하는데 -> 인터페이스로 만들어버리면 충돌 없음
인터페이스의 구현
-인터페이스에 정의된 추상 메서드를 완성하는 것
- 인터페이스에 정의된 추상 메서드를 모두 구현해야 함
-> class 클래스 이름 implements 인터페이스 이름 {}
- 일부만 구현하는 경우, 클래스 앞에 abstract를 붙여야 함.
-> ex) 인터페이스 안에 추상 메서드가 두 개인 경우 다른 클래스를 통해 인터페이스를 구현할 때 추상 메서드가 1개일 때 abstract를 클래스 앞에 붙여서 남은 메서드 1개를 생략할 수 있다. 이 부분이 중요한데 메서드 두 개 중 하나를 구현하되 남은 한 개는 없어진 게 아닌 생략된 것!
추상 클래스
-일부가 미완성
추상 클래스와 인터페이스의 공통점은?
-> 추상 메서드를 가지고 있다.(미완성 설계도)
추상 클래스와 인터페이스의 차이점은?
-> 인터페이스는 iv(인스턴스 변수)를 가질 수 없다.
해당 포스팅은 남궁성님의 자바의 정석 기초편을 보면서 공부한 내용을 정리했습니다. 참고 부탁드립니다.
'JAVA' 카테고리의 다른 글
연산자 (0) | 2022.06.06 |
---|---|
Scanner (0) | 2022.06.06 |
형 변환 (0) | 2022.06.06 |
양의 정수, 음수, 실수, 자료형 (0) | 2022.06.03 |
추상 (0) | 2022.05.25 |