2014-04-27 6 views
0

나는 추상 클래스를 확장하는 구체적인 클래스가 있는데,이 추상 클래스는 추상 클래스를 확장합니다. 이 최상위 클래스는 인터페이스를 구현합니다. 구체적인 하위 클래스를 가질 필요가 없도록 최상위 추상 클래스에 인터페이스 메서드를 구현할 수 있습니까?추상 클래스의 인터페이스 메서드 구현

또한 인터페이스 메소드가 Object 유형을 매개 변수로 사용하는 경우 맨 위 추상 클래스의 구현을 다른 유형 (나에게 맞는 것처럼 보임)으로 가져 오거나 정확하게 동일한 메소드 서명을 사용해야 할 수 있습니까? ?

+2

을 시도하고 볼의 유형을 변경하면 프로그램이 실 거예요 컴파일 아래 illustares ... – Robert

답변

1

최상위 추상 클래스에서 인터페이스 메소드를 구현하여 구체적인 하위 클래스를 구현할 필요가 없습니까?

이 매개 변수의 같은 인터페이스 방법은 개체 유형 걸리는 경우, 내가 맨 추상 클래스의 구현은 (오른쪽 날 것으로 보인다) 또 다른 유형을, 또는 할 수 있습니다 예

또한, 것 정확하게 동일한 메소드 서명을 사용해야합니까?

동일한 서명이어야합니다. 그러나 원한다면 제네릭으로 속일 수 있으며, 계획을 더 자세히 설명 할 수도 있습니다. 구체적인 하위 클래스하지 않도록

내가 상위 추상 클래스의 인터페이스 메소드를 구현 할 수

주먹 quetion에 대한

0

?

당신은 할 수 있고 모든 하위 클래스에 공통적 인 기능이 있어야합니다.

아래

아니, 서명이 항상 동일해야합니다 두 번째 질문에 대해 동일한

interface X{ 
    void show(); 

} 
abstract class A implements X{ 
    public void show(){ 
     System.out.println("show"); 
    } 

} 

abstract class B extends A{ 

} 

class C extends B{ 

} 
0

에 대한 예입니다. 그래서 프로그램 아래

interface X{ 

    void print(Object obj); 

} 
abstract class A implements X{ 

    @Override 
    public void print(Object obj) { 
     System.out.println("print"); 

    } 

} 

당신이 서브 클래스

interface X{ 

    void print(Object obj); 

} 
abstract class A implements X{ 

    @Override 
    public void print(A obj) { 
     System.out.println("print"); 

    } 

} 
관련 문제