abstract クラスを報告します。
Java では複数クラスの継承はサポートされていませんが、クラスが複数のインターフェースを実装することは可能です。このため、クラスではなく、インターフェースを使用することをお勧めします。
(Object 以外の) スーパークラスを持たず、public static final フィールド、public abstract メソッド、および public 内部クラスのみを持つクラスはインターフェースに変換できます。
例:
abstract class Example {
public static final int MY_CONST = 42;
public abstract void foo();
}
class Inheritor extends Example {
@Override
public void foo() {
System.out.println(MY_CONST);
}
}
クイックフィックス適用後:
interface Example {
int MY_CONST = 42;
void foo();
}
class Inheritor implements Example {
@Override
public void foo() {
System.out.println(MY_CONST);
}
}
インスペクションの構成:
default メソッドに変換できる static メソッドと非 abstract メソッドを持つクラスのみを報告するには、「Java 8 の使用時に非抽象メソッドを含むクラスを報告する」オプションを使用します (言語レベルが 8 以降の場合のみ)。