は、私はインターフェイスを持っていると言う:実装を拡張するクラスは、それがそのインタフェースを実装することをマークする必要がありますか?
interface IFoo {
void foo();
}
と、それを実装するクラス:
class Foo implements IFoo {
void foo() {
System.out.println("foo!");
}
}
と、そのクラスを拡張するクラス:
class Bar extends Foo {
void foo() {
super.foo()
System.out.println("bar!");
}
}
はBar
class Bar extends Foo
として宣言する必要がありますまたはclass Bar extends Foo implements IFoo
?
私は 'class Bar extends Foo'と思っても十分だと思います。 – vm345
関連:https://stackoverflow.com/questions/18558536 –
あなたはそれを実装するクラスを持っていません。あなたは最高でも*模倣するクラスを持っています。実際にオーバーライドされたメソッドを表すために '@Outride'を使用するのが最善です。コンパイラは' IFoo'を実装していないためにあなたを驚かせます。 – Makoto