Netbeans IDEは、問題を引き起こす可能性のあるコードを検出するのに適しています。Netbeans IDEはコンストラクタで呼び出されたメソッドについて警告を出さない
public class Base
{
Base(...)
{
...;
}
public void foo()
{
...;
}
}
public class Child extends Base
{
Child(...)
{
super(...);
foo();
}
}
私が子コンストラクタで基本クラス関数foo()を呼び出しているという理由で、警告が発行されないのはなぜですか?もちろん、foo()が呼び出されるポイントによって基本オブジェクトが構築されるので、完全に合法ですが、foo()は暗黙的に仮想メソッドなので、はfoo()がfinalとマークされていない限り、実際には私は期待します。
finalとマークされていない子クラスのコンストラクタから基本クラスの関数を呼び出すと、IDEが警告を出すべきだと思います。
あなたは 'foo()'が抽象であることを意味しますか? 'abstract void foo();'? – NINCOMPOOP
全くありません。実装されています。私は明確にするために質問を編集します。 – Bathsheba
バグだと思う場合は、問題を提出することを検討してください:https://netbeans.org/community/issues.html – Puce