자바 인터페이스
대부분의 사람들이 오랫동안 개발 해왔고 인터페이스를 사용하는 이유와 이점을 이해 했어야했기 때문에 여기서 인터페이스를 사용해야하는 이유에 대해서는 언급하지 않습니다. 인터페이스에 대한 몇 가지 문제?? .
1. 인터페이스의 메소드는 다음과 같이 선언 할 필요가 없습니다.public
쓰기 오류는 없지만 인터페이스가 구현 될 때만 가능하기 때문에 전혀 필요하지 않습니다.public
아니 인터페이스 방법은 다음과 같이 선언되어 있음을 언급 private
하고, protected
오류가 직접보고
2. 인터페이스가 구현되면public
public
다른 유형의 준 오류 제외
게다가 인터페이스 메소드를으로 선언하고 싶다면 private
이 인터페이스를 작성하는 이유는 무엇입니까?
인터페이스의 목적은 원래 느슨한 결합을위한 것이었고 private
, 메소드가 클래스 내에서만 사용될 수 있도록 잘 작성 되어 있습니다. 그것은 느슨한 결합의 유령입니다.
3. 동일한 이름으로 여러 인터페이스를 구현하는 문제
3.1 두 가지 방법은 정확히 동일합니다.
두 인터페이스들은 본원에서 정의 된 방법에있어서, 자신 과 동일한 (정확히 참조로 函数名
, 返回值
, 参数类型
, 参数个数
그리고 不同类型参数的排列顺序
정확하게, 이들 조건은 동일한 리턴 값 외에 조건이되도록 상기 함수 이름, 나머지 3 개의 샘플 각 기능이 오버로드 될 수있는 것과 동일)
결국 여러 인터페이스가 구현되면 실제로는 효과가없는 하나의 메서드 만 구현하는 것과 동일하며 다형성을 얻을 수 있습니다.
3.2 반환 유형 만 다름
그러나 두 인터페이스 함수 이름과 매개 변수 수가 같으면 반환 값만 다릅니다 . 즉, 함수 오버로딩을 구별하는 조건 이 충족되지 않으면 컴파일러에서 오류를보고합니다.
이때 하나는 리턴 int
하고 하나는 리턴하지 않기 때문에 인터페이스 구현 int
은 작성 void
되거나 작성 되지 않습니다.
그리고 메서드에서 반환 된 형식은 오버로딩의 신호로 사용할 수 없기 때문에 다음 쓰기 메서드는 도움이되지 않습니다.
3.3 인터페이스는 기능 과부하 조건이 충족되는 경우에만 동일한 이름을 가질 수 있습니다.
3.1 参数类型,参数个数、不同类型参数的排列顺序
에서 언급했듯이 이러한 세 가지 조건은 각각 오버로드 될 수 있으며, 그중 하나라도 만족하는 한 동일한 함수 이름을 가진 인터페이스의 다중 상속 및 구현을 실현할 수 있습니다.