-4
私はjavaには新しく、現在トレーニングを受けていますが、まだいくつかのトピック、特に継承に対応できません。同じ名前のJavaメソッドをオーバーライドする
私は現在、単純なプログラムを試しています。継承クラス内で同じ名前で異なる変数を持つ抽象メソッドをオーバーライドすることは可能ですか?
私はjavaには新しく、現在トレーニングを受けていますが、まだいくつかのトピック、特に継承に対応できません。同じ名前のJavaメソッドをオーバーライドする
私は現在、単純なプログラムを試しています。継承クラス内で同じ名前で異なる変数を持つ抽象メソッドをオーバーライドすることは可能ですか?
"異なる変数の内部"と言ったとき、私はあなたがメソッドのパラメータを意味するかもしれないと仮定して自由にして、継承されたメソッドをオーバーロードしました。
public abstract class Parent {
abstract void aMethod(int a);
}
public class Child extends Parent {
void aMethod(int a){
// Some code here, this is the normal thing to do when overriding
}
void aMethod(String b){
// Some code here, this is okay too, but doesn't work with polymorphism
}
}
第2の方法は、Parent
クラスのインスタンスに呼び出されることは決してできない、とだけChild
クラスのインスタンスによって呼び出すことができます。
PS:Java IDEをすぐに閉じることができませんでしたので、コンパイルできるかどうかは確認できませんでしたが、投稿する前に調査しました。 Here's another questionは、抽象メソッドのオーバーライドとオーバーロードについてです。そこでの3番目の答えを見てください。
ようこそスタックオーバーフロー。あなたがしたこと、何をしようとしているのかを示す[mcve]を投稿してください。そうでなければ、あなたの質問は下落したり閉じたりするので、「いいえ、それはできません」のような役に立たない有益な回答が得られます。 – AJNeufeld
パラメータまたはローカル変数を意味しますか?どのように違うの? – shmosel
これは抽象メソッドであるため、ローカル変数です。最初のオーバーライドされたメソッドが文の行のみを表示し、2番目のメソッドが別のクラスの属性値をラベル付けして表示する方法とは異なります。 – kim