まず、過負荷と上書き(書き換え)の簡潔な定義を見てみましょう。
メソッドの過負荷:2つのメソッドに同じメソッド名があるが、パラメーターが一貫していない場合、1つのメソッドは他のメソッドの過負荷です。
メソッドオーバーライド:メソッドがサブクラスで定義されている場合、その名前、返品タイプ、パラメーターの署名は、親クラスのメソッドの名前、返品タイプ、パラメーター署名と一致する場合、サブクラスのメソッドがカバーしていると言えます。親クラスの方法
次のコードを例にとって、カバレッジの問題に焦点を当てましょう。
パブリッククラス{public string getname(){return "people"; new People.out.println(p.getname());結果は学生の人々pp = new Student();上記の結果は、学生クラスのgetNameメソッドが親クラスの方法を正常に上書きすることを示しています
変数のオーバーレイを見てみましょう。
パブリッククラス{Protected String name = "People"; out .println(p.name); // run resultはs = new Student(); out.println(s.name); System.out .println(pp.Name); //実行結果は人です}結果を実行することで、変数のオーバーレイが実際にメソッドと異なることがわかりました。
私自身の言葉では、変数のカバレッジは、せいぜい中途半端なカバレッジとしか考えることができません。
それ以外の場合、データの損失が発生した場合、UpConversionは発生しません
People PP = new Student(); out.println(pp.name); //実行結果は人です
私の個人的な経験では、変数の報道は間違いを犯すのが簡単です。それは人々がC ++の相続に戻っているように感じさせます[これは仮想でのC ++の継承ではありません]
最後に、別のコードを見てみましょう。
パブリッククラス{people "; string [] args){people p = new people.out.println(); getname ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::dを:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::づ 火::::: :::::::::::::::::::::::::::::://実行結果は学生PP = new Student(); .println(pp.getName()); //実行結果は学生}明らかに、このような報道は私たちにとってより有用なカバレッジです。このようにして、具体的なオブジェクトを一般的なオブジェクトと実際の多型に抽象化する目的を達成できるからです。
上記は私の個人的な意見です。