인터페이스 가 도대체 뭐야?
3849 단어 인터페이스
자바 의 인터페이스 역할 에 대해 서 는 잘 모 르 겠 습 니 다.하나의 클래스 는 implements 여러 개의 인 터 페 이 스 를 사용 할 수 있 지만 인터페이스 자 체 는 몇 가지 방법 만 정 의 했 을 뿐 실제 적 인 의미 가 없 으 며 구체 적 인 실현 은 이 를 실현 하 는 클래스 에서 이 루어 져 야 한다.그렇다면 인터페이스 가 무슨 의미 가 있 을 까?
예 를 들 어 현재
public interface I{
method1(){};
}
class A implements I{
method1()
{ 이렇게 쓰 는 것 과 인 터 페 이 스 를 실현 하지 않 고 method 1 을 class A 로 직접 쓰 는 방법 은 어떤 차이 가 있 습 니까?
즉:
class A{
method1()
{ 구체 적 으로 예 를 들 어 사용 상의 차 이 를 설명 할 수 있 습 니까?
대답:
인터페이스의 가장 중요 한 역할 은 통일 적 인 방문 을 달성 하 는 것 이다.바로 대상 을 만 들 때 인터페이스 로 만 드 는 것 이다.당신 이 묻 는 것 처럼 method 1 의 방법 이 있 습 니 다.만약 내 가 인 터 페 이 스 를 사용한다 면 내 위 에 one.method 1()을 사용 할 수 있 습 니 다.그 렇 죠?그러면 나 new a();a 를 사용 하 는 방법 입 니 다.new b()는 b 를 사용 하 는 방법 입 니 다.
이렇게 하면 불편 합 니까?
이것 을 통일 방문 이 라 고 합 니 다.이 인 터 페 이 스 를 실현 하 는 방법 은 이름 은 같 지만 실현 내용 은 다 르 기 때 문 입 니 다.
내 가 인터페이스 로 대상 을 정의 하면 통일 적 으로 접근 할 수 있 지 않 습 니까?인 터 페 이 스 는 주로 여러 가지 유형 을 대상 으로 이 루어 집 니 다.만약 에 한 가지 유형 만 있 으 면 당연히 인 터 페 이 스 를 사용 하지 않 아 도 됩 니 다.이렇게 생각 하 시 면 저 는 USB 인 터 페 이 스 를 만 들 고 read()추상 적 인 방법 이 있 습 니 다.그리고 mp3 류 가 실현 되 고 U 디스크 류 가 실현 되 며 모 바 일 하 드 디스크 류 가 실현 되 며 제 가 사용 할 때 USB a=new[유형 명]을 사용 합 니 다.이렇게 a.read();내 클래스 이름 에 U 디스크 를 쓰 면 U 디스크 를 읽 고 mp3 를 쓰 면 mp3 를 읽 습 니 다.이 이름 은 속성 파일 에서 읽 을 수 있 습 니 다.당신 이 쓰 는 것 을 사용 하 세 요.
**********************************************************************************************************************
인터페이스의 도입:
추상 류 중의 모든 방법 이 추상 적일 때 이 추상 류 를 다른 형식 으로 정의 하고 표시 할 수 있다.이것 이 바로 인터페이스,키워드 인터페이스 이다.
형식:
interface Demo{
public static final int NUM = 3;
public abstract void show1();
public abstract void show2();
}
인터페이스 에서 흔히 볼 수 있 는 멤버:(그리고 이 멤버 들 은 모두 고정된 수정자 가 있다)
1.전역 상수:public static final
2.추상 적 인 방법:public abstract
이 를 통 해 인터페이스 에 있 는 구성원 들 은 모두 공공 권한 이라는 결론 을 얻 었 다.
**********************************************************************************************************************
구현:키워드 implements
주:클래스 와 클래스 간 은 계승 관계 이 고 클래스 와 인터페이스 간 은 실현 관계 입 니 다.
실현 의 도입:추상 류 에서 추상 적 인 방법 은 실현(하위 방법 덮어 쓰기)한 후에 만 사용 할 수 있 기 때문이다.
형식:
class DemoImpl implements Demo{
public void show1(){
}
public void show2(){
}
}
주의:1.인터페이스 류 는 인터페이스의 모든 내용 을 가 져 오기 때문에 인터페이스 류 는 예화 할 수 없습니다.
2.인터페이스의 하위 클래스 를 실현 하고 인터페이스의 모든 추상 적 인 방법 을 덮어 야만 이 하위 클래스 를 실례 화 할 수 있다.
인 터 페 이 스 는 클래스 가 많이 계승 할 수 없 는 개량 입 니 다:
다 중 상속 은 방법 호출 의 불확실 성 을 초래 하고,다 중 실현 은 불가능 하기 때문이다.주 된 차 이 는 방법 체 가 있 느 냐 없 느 냐 에 있다.
예:
interface A{
public void show();
}
interface Z{
public void show();
}
class Test implements A,Z{
public void show() {
}
} 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Go 언어】interface 의 포인터로부터 메소드 호출할 수 없는 것은 왜?간결하게 말하면 「interface 를 가리키는 포인터는 interface 를 실장한 구조체의 포인터의 포인터가 되기 때문」입니다. 이것만으로는 잘 모르기 때문에 자세히 살펴 보겠습니다. interface의 Mamm...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.