2013-02-21 2 views
1

세 가지 Java 클래스가 있습니다. 처음 두 클래스는 ClassA까지 이어지고 마지막 클래스는 ClassB까지 확장됩니다.일반 클래스 확장

Class1 extends ClassA 

Class2 extends ClassA 

Class3 extends ClassB 

나는 세 가지 클래스 (Class1-3)에 몇 가지 중복 된 메서드가 있습니다.

Class1 extends (ClassCommon extends ClassA) 

Class2 extends (ClassCommon extends ClassA) 

Class3 extends ClassB 

그래서 내 중복 방법 ClassCommon에있다,하지만 난 여전히 Class3ClassCommon 사이 방법을 복제 한 : 것을 방지하기 위해 그들에게 내가 그렇게 같은 ClassCommon을 추가 중복.

나는 지금까지 감각을기를 수 있기를 바랍니다.

내 질문은 : 구성의 이런 종류의 가지고 일반 유형을 사용하여, 어쨌든이 :

Class1 extends ClassCommon<ClassA> 

Class2 extends ClassCommon<ClassA> 

Class3 extends ClassCommon<ClassB> 

ClassCommon<E> extends E 
+2

아니, 없다. 내 예제에서 중복을 피하기 위해 –

+0

이 있습니까? –

+0

제네릭 형식 매개 변수 "E"는 무엇을 나타내야합니까? 어떤 유형? 수업 중 하나야? – rgettman

답변

3

을 방법에 대한

Class1 extends ClassA 
Class2 extends ClassA 
Class3 extends ClassB 
ClassA extends ClassCommon 
ClassB extends ClassCommon 

또는 인터페이스 :

Class1 extends ClassCommon implements ClassA 
Class2 extends ClassCommon implements ClassA 
Class3 extends ClassCommon implements ClassB 

행운을 빌어 요!

+0

+1 –

1

나는 당신이 일반적인 기능은 무엇 알고 있지만, 클래스 계층 구조의 루트로 ClassCommon을 시도하지 않습니다 계층 구조의 루트로

class ClassCommon<E extends ClassCommon<E>> 

class ClassA extends ClassCommon<ClassA> 

class ClassB extends ClassCommon<ClassB> 

class Class1 extends ClassA 

class Class2 extends ClassA 

class Class3 extends ClassB 
2

사용 ClassCommon을. 그런 다음

public abstract class ClassCommon { 

    /* 
    * Your methods here. 
    */ 
} 

...

public class ClassA extends ClassCommon 
public class ClassB extends ClassCommon 

... 그리고 ...

public class Class1 extends ClassA 
public class Class2 extends ClassA 
public class Class3 extends ClassB