익명 클래스를 사용하여 추상 클래스가 아닌 추상 메서드를 재정의 할 수 있습니까? FindBugs 도구가 "Uncallable method of anonymous class"문제를 발행하고 있습니다. 자세한 내용은 아래 예제를 참조하십시오.익명 클래스가 추상 클래스의 비 추상 메서드를 구현할 수 있습니까?
public class BaseClass {
// This class is a Library Class.
}
public abstract class AbstractBaseClass extends BaseClass {
public abstract void abstractMethod();
public void nonAbstractMethod() {}
}
public abstract class DerivedAbstractClass extends AbstractBaseClass {
// Here Some more additional methods has been added
}
public class DemoAbstract {
public static void main(String[] args) {
init();
}
private static void init() {
DerivedAbstractClass derivedAbstractClass = new DerivedAbstractClass() {
@Override
public void abstractMethod() {
}
@Override
public void nonAbstractMethod() {
// Is it possible to override like this?
}
};
}
}
네, 가능합니다. 그 정확한 예 (복사 및 붙여 넣기, 전혀 변경 안 함)가 경고를 생성합니까? – immibis
물론 무시할 수 있지만 익명 클래스가 여전히 구현을 제공하므로 익숙하지 않은 클래스가이 메서드를 구현할 수 없습니까? – Stultuske
Hello immibis, 나는 나의 예를 편집했다. 제가 따르고있는 정확한 예를 확인하십시오. –