java 인터페이스의 의미
1. 자바에서 하나의 인터페이스를 계승하고 그의 방법을 다시 쓰려면 왜 이런 행동을 많이 해서 하나의 인터페이스를 실현해야 합니까?
그냥 클래스에 방법을 쓰면 되지 않을까요?그러니까 유명 뒤에 있는
Implements
인터페이스를 빼면 안 돼요?통일 접근: 인터페이스의 가장 중요한 역할은 통일 접근에 도달하는 것이다. 바로 대상을 만들 때 인터페이스로 만드는 것이다
【 】 【 】=new 【 】
. 그러면 너는 어떤 종류의 대상을 사용하면 new
어느 대상을 사용할 수 있고 원래의 코드를 바꾸지 않아도 된다. 너의 USB 인터페이스와 같이 꽂은 대로 읽는 것이 바로 이 원리다.만약 내가 인터페이스를 사용한다면 one.method1();
그러면 나는new a()
;바로 a
의 방법을 사용하고, new b()
는 b
의 방법을 사용한다.이것은 통일 방문이라고 한다. 왜냐하면 당신이 이 인터페이스를 실현하는 유형의 방법은 이름은 같지만 실현 내용은 다르기 때문이다.
다중 계승: 또한 자바가 인터페이스를 사용하는 데 또 다른 장점이 있다. 바로 자바는 다중 계승을 지원하지 않지만 여러 인터페이스를 실현할 수 있다. 이것은 어느 정도에 다중 계승을 하는 방법으로 볼 수 있다.
우선 이렇게 쓰는 것은 틀림없고 우리 초기 학기에는 아직 인터페이스의 가치가 나타나지 않았다.그러나 우리가 프로젝트를 할 때 인터페이스를 활용하면 매우 편리할 것이다.인터페이스 안에는 간단한 방법의 성명만 있기 때문이다.아니면 공용 물건들.모두가 그것을 실현하려면 매번 새롭게 정의하는 것보다 훨씬 편리하다.인터페이스의 역할에 대해 일부 작은 항목에서는 그 발휘의 장점을 보기 어렵다.이로 인해 자주 작은 프로젝트를 하는 개발자들은 오래 하면 좋은 것이 없다는 것을 느끼지 못하고, 때로는 쓰기도 번거로우니 아예 쓰지 않는다.사실 일부 큰 프로젝트에서 인터페이스의 역할은 상당히 뚜렷하게 발휘된다.
예를 들어 만약에 업무 논리 코드를 개발한다면 어렵게 모든 기능을 실현했다. 갑자기 사용자가 바꾸려고 하면 코드를 수정하는 동시에 코드를 호출한 다른 사람들도 고칠 것이다. 만약에 코드의 관련성이 강하면 많은 사람들이 코드를 바꾸려고 한다. 이렇게 왔다 갔다 하면 프로그램이 상당히 불안정해지고 더 많은 새로운 버그가 생길 수도 있다.모두가 혼란에 빠질 수 있다.
그러나 인터페이스를 사용한다면, 인터페이스를 사용하기 전에, 인터페이스가 실현할 모든 기능을 생각해야 한다. (인터페이스는 사실상 기능을 봉인하는 것이다.)이 인터페이스를 확인한 후, 사용자의 요구가 바뀌면, 실현 클래스를 다시 쓰기만 하면, 다른 사람들은 당신의 인터페이스만 호출할 것입니다. 그는 당신이 어떻게 실현하든지 간에 인터페이스가 제공하는 기능만 필요합니다.이렇게 하면 아마도 너의 코드를 수정하기만 하면 될 것이다. 다른 사람들은 아무것도 하지 않아도 된다.또한: 이렇게 하면 개발자가 분업을 명확하게 할 수 있고 인터페이스를 확정하면 동시에 개발을 하고 개발 효율을 높일 수 있다.또 인터페이스를 사용하면 사용이 편리하고 가독성이 강하며 구조가 뚜렷하다는 장점도 있다.
하나의 인터페이스를 정의하면 여러 가지 실현이 가능하다.변수는 인터페이스 변수로 성명하고 인터페이스 방법을 호출하며 이후 실현 클래스를 전환할 때 기존 코드는 수정할 필요가 없습니다.
결합을 풀고 확장할 수 있는 것이 설계 인터페이스의 주요 원인 중의 하나이다
2. 왜 인터페이스는 많이 계승할 수 있지만 종류는 안 됩니까?
만약 두 부류가 있다면 두 부류 안에 같은 방법이 있다면 자류로서 이 방법을 어떻게 계승해야 합니까?부류 1의 것입니까 아니면 부류 2의 것입니까?그러나 여러 개의 인터페이스를 실현하는 것은 문제없다. 왜냐하면 어느 인터페이스든 호출된 것은 모두 같은 실현이기 때문이다. 왜냐하면 방법명만 있기 때문이다!또한 단일 상속의 목적 중 하나는 복잡도를 낮추고 유지보수의 난이도를 줄이는 것이다
상속 부류는 실현을 포함하고, 상속 인터페이스는 인터페이스만 포함하기 때문이다.인터페이스가 정의하는 것은 행위이다. 예를 들어 걷기, 많은 대상이 이 행위를 실현할 수 있지만 유형이 정의하는 것은 대상의 속성과 구체적인 행위이다
class
실현을 책임지고interface
인터페이스를 책임진다.다중 계승의 가장 번거로운 문제는 충돌이다. 충돌은 주로 실현된 시퀀스와 전송 파라미터, 전송 파라미터에 나타난다.이 몇 가지 측면에서 실현에 있어 부류가 시차적인 문제가 발생할 때 언어 자체가 비할 바 없이 복잡해지고 다계승 문제는 실현 자체에서 많은 방식으로 해결할 수 있다.인터페이스의 경우 전송 매개 변수 충돌이 overload
이면 문제가 아니다. 전송 매개 변수만 인터페이스 다중 계승이 허용되지 않는다. 예를 들어 다음과 같다.public interface IA {
void doSomething();
}
public interface IB {
Integer doSomething();
}
public interface IAB extends IA, IB {
@Override
public void doSomething();
@Override
public Integer doSomething();
}
이 경우 컴파일러는 IA, IB 인터페이스 충돌은 허용되지 않습니다.
다음으로 이동:https://www.cnblogs.com/yunxiblog/p/5240690.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.