2012-05-17 3 views
-1

가능한 중복 인터페이스하지에 : 나는 추상 클래스와 인터페이스에 대해 알고
When to use abstract class or interface?경우에만 추상 클래스 만

. 그러나 우리는 추상적 인 클래스만을 사용하고 인터페이스는 아니고 추상적 인 클래스는 필요로하지 않는 실시간 시나리오를 알고 싶습니다.

여러 상속이 필요한 경우 즉, 클래스가 이미 일부 클래스를 상속하고있어 여기에서 추상 클래스를 사용할 수 없을 때 두 번째가 사용 된 것 같습니다. 인터페이스 만 사용해야합니다. 같은 방식으로 나는 추상적 인 것만 사용하고 인터페이스는 사용하지 않는 예가 필요하다.

수정 됨

인터페이스에 대해 더 많은 점을 추가하기 만하면됩니다.

      Collections 

      List        Set 

그들이 그 추가되는 일반적인 기능, 오퍼레이션과 addAll을 가지고 있지만 모든 3가, 인터페이스하지만 중요한 것은있다가 들어있는 자바 라이브러리 컬렉션을 고려, containsAll 나 등 목록은 자신과 세트에 구현 다른 방법으로 구현합니다 (중복에 대해 말함). 세트가 중복 허용 목록을 허용하지 않습니다. 지금까지 우리가 인터페이스

에 갈 필요가 슈퍼 인터페이스의 하위 인터페이스에 대한 공통 기능이없는 경우

그래서 내가 말을 시도하고있다 그러나 몇 가지 일반적인 기능이있는 경우 모두 다음을 유지시킨 추상적 인 클래스로.

자바 API에서 실용적인 예제가 필요합니다. 감사합니다. . Sindhu

+3

인터넷에 떠 다니는이 질문에 대한 대답은 문자 그대로 수천 가지입니다. – dlev

+0

신두,이 숙제가 있니? 정확한 추측을 해답을 알려주십시오. 올바른 방향에 있다면 알려 드릴 수 있습니다. – rajah9

+0

안녕하세요 rajah9 내가 편집했습니다. –

답변

0

추상 클래스는 API를 정의하는 인터페이스와 관련이없는 일반적인 기능에 적합합니다.

추상 클래스의 하위 클래스 이외의 구현을 사용하지 않는다면 인터페이스를 건너 뛸 수 있습니다. 실용적인 예제를 생각할 수는 없지만 인터페이스를 항상 원할 것이므로 단위 테스트를위한 모의 구현을 만들 수 있습니다.

추상 클래스를 건너 뛰는 것이 훨씬 더 일반적입니다. 이 경우 각 항목은 인터페이스를 사용하지만 구현은 공유하지 않습니다. JDBC, FTP 등의 구현이있는 "ConnectionService"인터페이스가있을 수 있습니다. 이러한 구현은 추상 클래스가 아무런 가치도 추가하지 않는 프로토콜에 고유합니다.

0

일반적으로 클래스가 체인의 이전 클래스에서 상속 할 수있게하려면 수퍼 클래스 계층 구조를 사용합니다.

슈퍼 클래스 동물

동물은 초식 동물이나 육식 동물이 될 수있을 수 있습니다.

herbivore는 말일 수 있습니다.

육식 동물은 늑대 일 수 있습니다.

말은 faun 일 수 있습니다.

늑대는 새끼 일 수 있습니다.

등등.

인터페이스는 특정 기능을 추가하기를 원할 때만 인터페이스를 구현하지만, 인터페이스는 메소드 서명 만 구현하지만 실제 기능은 구현하지 않기 때문에 경우마다 다릅니다. 그걸 써야 해.