誰もが、親クラスのサブクラス継承が属性や方法を含むタイプの継承であることを知っています!サブクラスと親のクラスが同じ署名を持っている場合、それは上書きと呼ばれます!サブクラスの属性と親クラスが同じ場合、親クラスは独自の属性を隠します!
しかし、親クラスと子クラスによって作成された参照を使用して、子クラスによって作成されたオブジェクトを指す場合、Child Classオブジェクトのプロパティ値またはメソッドの結果は何ですか?
コードを見てください:
public class fielddemo {public static void main(string [] args){学生t = new Student( "Jack");人p = t; //親クラスによって作成された参照は、サブクラスSystem.out.println(t.name+"、"+p.name)によって作成されたオブジェクトを指します。 System.out.println(t.getName()+"、"+p.getName()); }} class person {string name; int age; public string getName(){return this.name; }} class Student extends person {string name; //属性と親クラス属性名は同じですが、開発中の親クラス属性名と同じではありません! ! public Student(string name){this.name = name; super.name = "rose"; //親クラスの属性に値を割り当てる} public string getName(){return this.name; }}戻り結果は次のとおりです。
ジャック、ローズ
ジャック、ジャック
その理由は、Javaでは、属性がタイプにバインドされ、メソッドはオブジェクトにバインドされます!
記事は非常に簡単ですが、特定の実用的な価値もあります。みんなの学習に役立つことを願っています。