(학습 참고서 : Java2 실습 튜토리얼 제 5 판)
1. 인터페이스
interface 키워드를 사용하여 클래스와 유사한 인터페이스를 정의합니다. 인터페이스에는 인터페이스 선언과 인터페이스 본문이 포함됩니다.
interface 接口名{
接口体内容;
}
인터페이스 본문 : 상수 선언 (변수 없음)과 추상 메서드 의 두 부분으로 구성됩니다 . 인터페이스 본문의 메서드는 추상 메서드 일뿐입니다. 그리고 인터페이스 본문에서 : 모든 상수의 액세스 권한은 공용 및 정적 상수 여야하며 ( 공용 최종 정적 수정자는 생략 할 수 있음 ) 모든 추상 메서드의 액세스 권한은 공용이어야합니다 ( 공용 추상 수정자는 허용됨). 생략 )
둘째, 인터페이스 구현
(1) 클래스는 인터페이스를 구현합니다.
클래스가 하나 이상의 인터페이스를 구현 함을 선언하기 위해 클래스에서 구현 키워드를 사용해야합니다. 형식은 다음과 같습니다.
class A (extends B) implements 接口1,接口2{
...;
}
(2)
인터페이스에서 메서드 다시 쓰기 비추 상 클래스가 인터페이스를 구현하는 경우이 클래스는이 인터페이스의 모든 메서드를 다시 작성해야합니다 . 인터페이스의 메서드는 공용 추상 메서드 여야 하므로 다시 작성된 메서드 는 추상을 제거하고 메서드 본문을 작성하는 것 외에도 public을 추가해야합니다 . 그렇지 않으면 메서드의 액세스 권한이 감소됩니다.
클래스 선언이 인터페이스를 구현하지만 인터페이스의 모든 메서드를 다시 작성하지 않는 경우 클래스는 추상 클래스 여야합니다. 추상 클래스는 인터페이스에서 메서드를 다시 작성하거나 인터페이스에서 직접 메서드를 소유 할 수 있습니다.
(3) 인터페이스 세부 사항
- 프로그램은 인터페이스 이름을 사용하여 인터페이스의 상수에 액세스 할 수 있지만 클래스가 인터페이스를 구현하는 경우 클래스는 클래스 본문의 인터페이스 상수를 직접 사용할 수 있습니다.
- 인터페이스를 정의 할 때 키워드 interface 앞에 public이 추가되면 모든 클래스에서 인터페이스를 구현할 수 있습니다. public이 추가되지 않은 경우 친숙한 인터페이스는 동일한 패키지의 클래스에서만 구현할 수 있습니다.
- 부모 클래스가 인터페이스를 구현하는 경우 하위 클래스는 자연스럽게 인터페이스를 구현하므로이 인터페이스의 구현을 선언하기 위해 구현을 사용할 필요가 없습니다.
- 인터페이스는 자식 인터페이스가 extends를 통해 부모 인터페이스를 상속한다고 선언하여 상속 될 수도 있습니다. 인터페이스의 상수와 메소드는 공용 유형이므로 하위 인터페이스는 상위 인터페이스의 모든 상수와 메소드를 완전히 상속합니다.
셋, 인터페이스 콜백
인터페이스는 인터페이스 변수라는 변수를 선언 할 수도 있습니다. 인터페이스 콜백은 인터페이스를 구현하는 클래스가 생성 한 객체에 대한 참조를 인터페이스가 선언 한 인터페이스 변수에 할당하면 인터페이스 변수가 클래스가 구현 한 인터페이스 메소드를 호출 할 수 있습니다. . 실제로 인터페이스 변수가 클래스에 의해 구현 된 인터페이스 메서드를 호출 할 때 해당 객체에이 메서드를 호출하도록 알리는 것입니다.
객체는 클래스의 원래 메소드와 클래스가 구현 한 인터페이스 메소드를 호출 할 수 있지만 인터페이스 변수는 객체의 참조 전송을 통해이 클래스가 구현 한 인터페이스 메소드 만 호출 할 수 있습니다.
넷째, 인터페이스의 역할
(1) 인터페이스는 추상 메서드로 표현되는 중요한 동작 표준을 추상화 할 수 있습니다.
(2) 인터페이스를 구현하는 클래스의 객체에 대한 참조를 인터페이스 변수에 할당 할 수 있습니다. 인터페이스 변수는 클래스에서 구현 한 인터페이스 메서드를 호출 할 수 있습니다. 즉, 클래스가 해당 클래스에서 동작 표준에 따라 특정 동작을 제공함을 의미합니다. 인터페이스.
(3) 인터페이스의 개념은 특정 클래스가 동일한 이름의 메소드를 갖도록 요구할 수 있지만 메소드의 특정 내용이 다를 수 있습니다. 즉, 인터페이스를 구현해야합니다.
다섯, 추상 클래스와 인터페이스의 차이점
(1) 추상 클래스의 하위 클래스는 추상 클래스의 모든 추상 메서드를 다시 작성해야하며 인터페이스 변수는 객체를 통해이 클래스가 구현 한 인터페이스 메서드를 호출합니다.
(2) 인터페이스는 일부 클래스에 동일한 이름의 메서드를 필요로하지만 이러한 클래스가 동일한 부모 클래스를 갖도록 강제하지는 않습니다.
(3) 추상 클래스는 모든 서브 클래스가이 기능을 갖도록 요구하고 인터페이스는 상황에 따라 특정 기능을 구현하기 위해 일부 클래스가 필요합니다.
(4) 추상 클래스는 사물의 클래스를 추상화하고 인터페이스는 특정 행동의 추상화.
大体功能:
class abstract 一个具有共性方法的抽象类
interface 数个具有独有方法的接口
具体的功能子类1 extends 抽象类 implements 接口1,接口2
具体的功能子类1 extends 抽象类 implements 接口1,接口3
具体的功能子类1 extends 抽象类 implements 接口2,接口3