인터페이스를 정말로 이해하고 있습니까? ? ?

자바 인터페이스

대부분의 사람들이 오랫동안 개발 해왔고 인터페이스를 사용하는 이유와 이점을 이해 했어야했기 때문에 여기서 인터페이스를 사용해야하는 이유에 대해서는 언급하지 않습니다. 인터페이스에 대한 몇 가지 문제?? .

1. 인터페이스의 메소드는 다음과 같이 선언 할 필요가 없습니다.public

쓰기 오류는 없지만 인터페이스가 구현 될 때만 가능하기 때문에 전혀 필요하지 않습니다.public

아니 인터페이스 방법은 다음과 같이 선언되어 있음을 언급 private하고, protected오류가 직접보고

image-20210317235222474

2. 인터페이스가 구현되면public

public다른 유형의 준 오류 제외

게다가 인터페이스 메소드를으로 선언하고 싶다면 private이 인터페이스를 작성하는 이유는 무엇입니까?

인터페이스의 목적은 원래 느슨한 결합을위한 것이었고 private, 메소드가 클래스 내에서만 사용될 수 있도록 잘 작성 되어 있습니다. 그것은 느슨한 결합의 유령입니다.

image-20210317235447384

3. 동일한 이름으로 여러 인터페이스를 구현하는 문제

3.1 두 가지 방법은 정확히 동일합니다.

두 인터페이스들은 본원에서 정의 된 방법에있어서, 자신 과 동일한 (정확히 참조로 函数名, 返回值, 参数类型, 参数个数그리고 不同类型参数的排列顺序정확하게, 이들 조건은 동일한 리턴 값 외에 조건이되도록 상기 함수 이름, 나머지 3 개의 샘플 각 기능이 오버로드 될 수있는 것과 동일)

image-20210318000412331

image-20210318000424942

결국 여러 인터페이스가 구현되면 실제로는 효과가없는 하나의 메서드 만 구현하는 것과 동일하며 다형성을 얻을 수 있습니다.

image-20210318000627167

3.2 반환 유형 만 다름

그러나 두 인터페이스 함수 이름과 매개 변수 수가 같으면 반환 값만 다릅니다 . 즉, 함수 오버로딩을 구별하는 조건충족되지 않으면 컴파일러에서 오류를보고합니다.

image-20210318000846017

image-20210318000859682

이때 하나는 리턴 int하고 하나는 리턴하지 않기 때문에 인터페이스 구현 int은 작성 void되거나 작성 되지 않습니다.

image-20210318000931012

그리고 메서드에서 반환 된 형식은 오버로딩의 신호로 사용할 수 없기 때문에 다음 쓰기 메서드는 도움이되지 않습니다.

이미지 -20210318001053987

3.3 인터페이스는 기능 과부하 조건이 충족되는 경우에만 동일한 이름을 가질 수 있습니다.

3.1 参数类型,参数个数、不同类型参数的排列顺序에서 언급했듯이 이러한 세 가지 조건은 각각 오버로드 될 수 있으며, 그중 하나라도 만족하는 한 동일한 함수 이름을 가진 인터페이스의 다중 상속 및 구현을 실현할 수 있습니다.

추천

출처blog.csdn.net/weixin_44062380/article/details/114957849