父類屬性和子類屬性同名

上轉(zhuǎn)型中:

  1. 如果父類中的屬性和子類的屬性同名的時(shí)候, 父類對(duì)象認(rèn)為認(rèn)為子類的屬性是特有的 , 父類定義的對(duì)象只調(diào)用自己的屬性。
    2.即是當(dāng)父類屬性和子類屬性同名時(shí), 父類對(duì)象名 調(diào)用的就是 父類的屬性,子類的對(duì)象名 調(diào)用的就是 子類的屬性。
  2. 如果父類的方法和子類方法同名時(shí),在上轉(zhuǎn)型關(guān)系中,父類的引用指向子類的實(shí)體 ,父類的對(duì)象調(diào)用的是子類的方法。但是要注意,此時(shí)父類的對(duì)象名不能調(diào)用子類特有的方法,如果要調(diào)用,則需要下轉(zhuǎn)型。

父類:

package com.qf.demo6;

public class Test {

    public static void main(String[] args) {
        Person  person = new Person();
        Student student = new Student();
        Person person2 = new Student();
        person2.eat();//父類的引用指向 子類的實(shí)體    父類的對(duì)象調(diào)用的是子類的方法
        System.out.println(person2.name);
        System.out.println(person2.age);
        
        Student student2 = (Student) person2;
        System.out.println(student2.name);
        System.out.println(student2.age);
        
        // 父類對(duì)象名 調(diào)用的就是  父類的屬性
        // 子類的對(duì)象名 調(diào)用的就是 子類的屬性
        
        /**
         *  父類的 屬性和 子類屬性同名 . 父類調(diào)用父類的
         *  子類重寫了  弗雷德分昂發(fā)         父類對(duì)象調(diào)用的是子類的方法
         */
    }
}

Student類

package com.qf.demo6;

public class Student extends Person{

    String name = "zzz";
    
    int age = 1;
    
    String  sex= "女";
    
    @Override
    public void eat() {
        System.out.println("學(xué)生吃肉");
        System.out.println(name);
        System.out.println(super.name);
        System.out.println(super.age);
    }
    public void eat1() {
        System.out.println("學(xué)生dd吃肉");
        
    }
}

Person類

package com.qf.demo6;
public class Person {
    String name="abc";
    int age= 9;
    public void eat(){
        System.out.println(name);
        System.out.println("吃");
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容