java 추상류와 인터페이스의 차이 상세 해석
abstractclassDemo{
abstractvoidmethod1();
abstractvoidmethod2();
…
}
interface Demo :
interfaceDemo{
voidmethod1();
voidmethod2();
…
}
abstractclass 방식에서 데모는 자신의 데이터 구성원이 있을 수도 있고 abstarct가 아닌 구성원 방법이 있을 수도 있다. 인터페이스 방식의 실현에서 데모는 정적으로 수정할 수 없는 데이터 구성원만 있을 수 있다(즉, staticfinal이어야 하지만 인터페이스에서 일반적으로 데이터 구성원을 정의하지 않는다). 모든 구성원 방법은 abstract이다.어떤 의미에서 말하자면,interface는 특수한 형식의 abstractclass이다.프로그래밍의 측면에서 볼 때 abstractclass와 인터페이스는'designbycontract'사상을 실현하는 데 사용할 수 있다.그러나 구체적인 사용에는 약간의 차이가 있다.우선, abstractclass는 자바 언어에서 일종의 계승 관계를 나타내고 한 종류는 한 번의 계승 관계만 사용할 수 있다.그러나 한 종류는 여러 개의 인터페이스를 실현할 수 있다.아마도 이것은 자바 언어의 디자이너가 자바가 다중 계승에 대한 지원을 고려하는 절충적인 고려일 것이다.그 다음에 abstractclass의 정의에서 우리는 방법의 기본 행위를 부여할 수 있다.그러나 인터페이스의 정의에서 방법은 기본 행위를 가지지 못한다. 이 제한을 피하기 위해서는 의뢰를 사용해야 하지만 복잡성을 증가시켜 큰 문제를 일으킬 수 있다.추상적인 클래스에서 기본 행위를 정의할 수 없는 또 다른 심각한 문제가 존재한다. 그것은 바로 유지보수상의 번거로움을 초래할 수 있다는 것이다.나중에 클래스의 인터페이스(일반적으로 abstractclass 또는 인터페이스를 통해 표시)를 수정하여 새로운 상황에 적응시키려면(예를 들어 새로운 방법을 추가하거나 이미 사용한 방법에 새로운 파라미터를 추가하려면) 매우 번거롭고 많은 시간이 걸릴 수 있기 때문이다.그러나 인터페이스가 abstractclass를 통해 이루어진다면 abstractclass에 정의된 기본 행위만 수정하면 될 수도 있습니다.마찬가지로 추상 클래스에서 기본 행위를 정의하지 못하면 같은 방법으로 이 추상 클래스의 모든 파생 클래스에 나타나고'onerule, oneplace'원칙을 위반하여 코드가 중복되고 이후의 유지보수에 불리하다.따라서 abstractclass와 인터페이스 사이에서 선택할 때 매우 조심해야 한다.디자인 이념 차원에서 볼 때 abstractclass와interface는 주로 문법 정의와 프로그래밍의 측면에서 abstractclass와interface의 차이를 논술했는데 이런 차원의 차이는 비교적 저차원적이고 비본질적이다.이 소절은 또 다른 차원: abstractclass와interface가 반영한 디자인 이념에서 이들의 차이를 분석할 것이다.저자는
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java에서 인터페이스와 추상 클래스의 차이점(1).개념: 추상류는 하나의 사물에 대한 추상, 즉 유형 추출이다.추상류는 전체 유형 전체를 추상화하는데 속성, 행위를 포함한다.Java 추상 클래스는 Java 인터페이스와 마찬가지로 새로운 유형을 설명하는 데 사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.