첫째, 인터페이스는 무엇인가
인터페이스는 위의 하드웨어 인터페이스와 유사한 사양입니다, 컴퓨터 마더 보드의 PCI 규격 슬롯은 한 PCI 인터페이스 카드가 그대로 따라하기, 자바 인터페이스와 유사하지만, 어떤 브랜드는 PCI 슬롯에 삽입 할 수 있습니다. 그래서 인터페이스 사양입니다. 인터페이스는 외부에서 제공 일의 일부 기능을 설명하는 것입니다. 이 클래스는 여러 인터페이스를 구현할 수 있습니다, 우리는 또한 다중 상태 기능을 달성하기 위해 인터페이스를 사용할 수 있지만 인터페이스는 자바 단일 상속의 약점 차지한다.
우리는 인터페이스 메소드는 선언이 아닌 특정 구현 될 수 interface 키워드는 인터페이스, 일반적으로 사용되는 방법 또는 인터페이스 선언 상수를 정의 사용하고,이 추상 클래스가 동일하지 않습니다이다. 인터페이스는 높은 수준의 추상화입니다. 인터페이스 정의 형식입니다
{공용 인터페이스 인터페이스 이름
// 당신은 상수를 정의 할 수 있습니다
// 메소드 선언 유일한 방법 만은 public입니다.
공공 무효 메소드 이름 ();
...
}
클래스는 달성하기 위해 구현해야하는 인터페이스의 모든 메소드를 구현하는 키워드 클래스를 사용할 필요가 인터페이스를 구현하는
공용 클래스는 인터페이스의 구현 클래스의 이름을 {구현
// 인터페이스 메소드의 구현
}
둘째, 응용 프로그램 인터페이스
좋은 인터페이스는 매우 간단하지 않다 설계, 물론, 사실, 아주 간단한 인터페이스를 정의, 당신은이 인터페이스 상수와 메소드 좋은 무엇을하고자합니다. 그러나이 기술은, 다음 샘플 코드 매우 간단합니다 :
// 정의 방식 인터페이스 공중 인터페이스 하는 MyInterface { // 프로그램 인터페이스에 의해 사용되는 상수 정의 인터페이스 만 일정 할 수있다. 공용 정적 최종 더블 . 가격 = 1450.00 ; 공공 정적 최종 INT의 카운터 = 5. ; // 인터페이스의 모든 메소드들은 그 메소드 아니다. 공개 공극 추가 ( INT의 X는 int로 Y)를, 공용 보이드 볼륨 ( INT의 X, int로 Y, INT의 Z)를; }
다음과 같이 인터페이스를 구현하는 어려움은 없다 :
// 实现接口 공용 클래스 MyImple는 구현 {하는 MyInterface가 @Override 공개 공극이 (ADD INT (X), INT의 Y) { } @Override 공개 공극 부피 ( INT (X), INT의 Y, INT의 z) { } }
클래스는 여러 인터페이스를 구현할 수 있습니다 자바는 단일 상속이기 때문에, 인터페이스는이 가입 할 수 있습니다. 우리는 다음의 인터페이스를 정의 할 수 있습니다
공중 인터페이스 MyInterface2 { 공개 공극 countpp (); }
여러 인터페이스를 구현하기 위해 위의 구현 클래스를 수정, 쉼표를 사용할 수있다, 물론, 인터페이스의 모든 메소드를 구현해야합니다.
// 实现接口1接口2 공용 클래스 MyImple가 구현 하는 MyInterface, MyInterface2을 { @Override 공개 공극 추가 ( INT (X), INT의 Y) { } @Override 공개 공극 부피 ( INT (X), INT의 Y, INT의 z) { } @Override 공개 보이드 countpp () { } }
셋째, 인터페이스와 추상 클래스의 차이점은 무엇입니까
추상 클래스와 인터페이스는 두 가지 메커니즘은 추상 클래스 정의, 심지어 상호 교환, 많은 개발자들에 대한 지원의 측면에서 큰 유사성 사이의 추상 클래스, 추상 클래스와 인터페이스의 정의에 대한 Java 언어 지원하고있다 추상 클래스 정의는 추상 클래스와 인터페이스에 대한 상대적으로 임의의 선택입니다 때. 사실, 둘 사이에 차이가 많이 아직 없습니다
비 추상 클래스 추상 메서드를 가질 수있다 (1). 그러나 인터페이스에서만 추상 메소드를 가질 수있는 인터페이스는 추상 클래스에서 구현 규범의 종류, 템플릿 디자인 구현한다.
(2), 인터페이스 (Interface)는 추상 클래스의 변형입니다. 인터페이스에서 모든 방법은 추상적이다. 다중 상속은이 인터페이스를 구현하여 얻을 수 있습니다. 모든 인터페이스 메소드는 프로그램 본체 않고, 추상적이다. 인터페이스는 정적 최종 멤버 변수를 정의 할 수있다. 그리고 서브 클래스는 실현뿐만 아니라 인터페이스 정의에서 동작을 상속하지, 유사한 인터페이스를 달성했다. 특별한 클래스 인터페이스를 구현하면되는 (제공의 절차) 이러한 모든 인터페이스의 정의. 그 다음은 이미지의 인터페이스 클래스 호출 인터페이스의 방법을 구현할 수 있습니다. 참조 변수 유형으로 인터페이스 이름의 사용을 허용 추상 클래스, 때문에. 일반적인 동적 적용됩니다 바인딩. 연산자는 객체의 클래스가 인터페이스를 구현할지 여부를 결정하는데 사용될 수있다 instanceof를 참조하면, 인터페이스 타입의 타입 또는 전환과 인터페이스로 전환시킬 수있다
3, 인터페이스는 추상 클래스 수에서 정적 메서드를 정의 할 수 없습니다. 정적 변수의 인터페이스는 모든 상수, 추상 클래스는 일반 변수를 가질 수 있습니다.
초기화 블록 4. 인터페이스 생성자와되지는 추상 클래스가있을 수 있습니다.
5. 클래스는 여러 인터페이스를 구현하지만 추상 클래스를 상속 할 수 있습니다.