私は次のように2つのクラスを持っています。
public absract class myAbstracClass{
//various methods and stuff.
}
public class myImplmentationOfAbstractClass extends myAbstractClass {
//just implments a call to the abstract class in the constructor.
//no extrac functionality is added in this instance.
}
3番目のクラスにはメソッドがあります
public class someFunctionality{//
//default constructor
public static void myMethod(myAbstractClass abc)
//do stuff with abc
}
私のコードでは、このメソッドを呼び出します
public class doWork{
public static void main(){
//create my implmented class
myImplmentationOfAbstractClass myABC = new myImplmentationOfAbstractClass();
//send this class to my function
someFunctionality.myMethod(myABC);//this causes an NPE
}
}
私は明らかに何かが欠けています、そして私はグーグルでそれを見つけていません。
とりあえず、myImplementationOfAbstractClass オブジェクトを受け入れるようにメソッドを変更しました。しかし、抽象クラスを再度使用し、特定のインスタンスに拡張する必要があると予想されるため、これは悪い新しいようです。
これは間違っていますか、それともスーパークラスのコピーを期待するメソッドにスーパークラスのサブクラスを送信できませんか?
前もって感謝します。
デビッド。
編集:
時間を割いて回答してくれたすべての人に感謝したいと思います。あなたはすべて正しいです。問題は別のところにありました。
関数内で別の「一時オブジェクト」を宣言していて、そのメンバーを間違った順序で宣言していたことがわかりました...それを見つけるのに時間がかかりました!
もう一度、みんなに感謝します。質問を書くプロセスは、回答と同じくらい役に立ちました。ほぼ同時に、私たちは皆同じ結論に達しました(私が推測する応答を投稿したのと同じように、私はそれに気づきました)。