extends는 인터페이스가 인터페이스를 상속받을 때 사용
# 인터페이스 형태
[public은 선택적] interfaceName [extends ListOfSuperInterfaces] { // 인터페이스 몸체
constant definitions 상수 정의 (필드)
method declarations 메소드 선언
* 인터페이스에서 선언된 모든 필드는 반드시 초기화가 되어야 한다.
* 인터페이스의 메소드는 내부적으로 추상 메소드가 된다. 꼭 구현을 해야한다.
* 인터페이스 = 추상클래스
* static이 올 수 없음
* 생성자가 없음
** 인터페이스가 선언되면 인터페이스를 구현하는 클래스가 있어야 한다. 인터페이스는 객체를 가질 수 없다.
# 클래스가 인터페이스를 상속받을때는 implements 사용
class className implements InterfaceName {
// ....
}
* 다중상속시 .연산자를 이용해 구체적으로 상속할 것 명시.
# 인터페이스의 모든 메소드들을 구현하지 않으면 그 클래스는 추상클래스가 된다
abstract class SetColor implements BaseColors {
// fields
public void setColor(int color) {
// ...
}
// BaseColor의 getColor메소드 구현안된 상황
# 인터페이스와 추상클래스의 차이
인터페이스는 다중상속을 지원한다. 메소드 선언만 간으하고 메소드를 구현할 순 없다.
추상클래스는 단일상속만 가능하다. 메소드의 부분적인 구현이 가능하다.
'전공 과목 이수2👨💻 > JAVA(공)' 카테고리의 다른 글
자바 | 8장 swing연습문제 (0) | 2021.05.27 |
---|---|
자바 11주차 | 11장 스레드 (0) | 2021.05.19 |
자바10, 11주차 | 9장 예외 (0) | 2021.05.18 |
자바| 1장~6장실습 / 연습문제 (0) | 2021.04.28 |
Java | 제네릭(generic) (0) | 2021.04.28 |
Java | 다형성 (Polymorphism) (0) | 2021.04.27 |