詳解Java繼承中屬性、方法和對象的關(guān)系
大家都知道子類繼承父類是類型的繼承,包括屬性和方法!如果子類和父類中的方法簽名相同就叫覆蓋!如果子類和父類的屬性相同,父類就會隱藏自己的屬性!
但是如果我用父類和子類所創(chuàng)建的引用指向子類所創(chuàng)建的對象,父類引用所調(diào)用子類對象中的屬性值或方法的結(jié)果是什么呢?
看代碼:
public class FieldDemo { public static void main(String[] args){ Student t = new Student("Jack"); Person p = t;//父類創(chuàng)建的引用指向子類所創(chuàng)建的對象 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; // 屬性和父類屬性名相同,但在做開發(fā)時一般不會和父類屬性名相同??! public Student(String name){ this.name = name; super.name = "Rose"; // 為父類中的屬性賦值 } public String getName(){ return this.name; } }
返回結(jié)果是:
Jack,Rose
Jack,Jack
原因是:在Java中,屬性綁定到類型,方法綁定到對象!
文章很簡單,但是也有一定的實(shí)用價值,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
SpringBoot Redis配置多數(shù)據(jù)源的項目實(shí)踐
springboot中默認(rèn)的redis配置是只能對單個redis庫進(jìn)行操作的, 那么我們需要多個庫操作的時候這個時候就可以采用redis多數(shù)據(jù)源 ,本文就介紹了SpringBoot Redis配置多數(shù)據(jù)源,感興趣的可以了解一下2023-07-07Spring如何利用@Value注解讀取yml中的map配置
這篇文章主要介紹了Spring如何利用@Value注解讀取yml中的map配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02Java技能點(diǎn)之SimpleDateFormat進(jìn)行日期格式化問題
這篇文章主要介紹了Java技能點(diǎn)之SimpleDateFormat進(jìn)行日期格式化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04java實(shí)現(xiàn)ftp上傳 如何創(chuàng)建文件夾
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)ftp上傳的相關(guān)資料,教大家如何創(chuàng)建文件夾?具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04JavaWeb開發(fā)入門第二篇Tomcat服務(wù)器配置講解
JavaWeb開發(fā)入門第二篇主要介紹了Tomcat服務(wù)器配置的方法教大家如何使用Tomcat服務(wù)器,感興趣的小伙伴們可以參考一下2016-04-04