国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java基礎(chǔ)之子類父類屬性覆蓋

2019-11-14 15:40:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

當(dāng)java的子類和父類具有相同名字的屬性時(shí),到底java是怎么處理的。

先看代碼:

package com.joyfulmath.study.field;public class Person {    public String name;    public String getName() {        return name;    }    }
package com.joyfulmath.study.field;public class Student extends Person {        public String name;        public Student(String name)    {        this.name = name;        super.name = "Man-Person";//從此處可以看出,java可以通過(guò)this,已經(jīng)super來(lái)區(qū)分子類和父類。    }        @Override    public String getName() {        return name;    }    }

 

package com.joyfulmath.study.factory;import com.joyfulmath.study.field.Person;import com.joyfulmath.study.field.Student;import com.joyfulmath.study.utils.TraceLog;public class FieldMethod implements IWorkMethod {    @Override    public void startWork() {        Student st = new Student("Mark-Student");        Person p = st;        TraceLog.v(p.name+" "+st.name);        TraceLog.v(p.getName()+" "+st.getName());    }}

其實(shí)st.name不用懷疑,肯定是Mark-Student

但是p.name,已經(jīng)p.getName()呢?

我們先來(lái)看p.getName(),雖然P是person,但是它實(shí)際代表的地址里面存的是Student,所以

p.getName()實(shí)際的調(diào)用結(jié)果是st.getName()一樣的,也就是student的getname方法。

那p.name呢?

我們?cè)赟tudent里面添加一個(gè)屬性,level。

public class Student extends Person {        public String name;    public int level;    public Student(String name)    {        this.name = name;        super.name = "Man-Person";    }        @Override    public String getName() {        return name;    }    }

然后還是在startwork中,用p.level,結(jié)果編譯器不認(rèn)識(shí)?

對(duì)呀,p是person的對(duì)象,它怎么會(huì)認(rèn)識(shí)呢。

所以很顯然,p只認(rèn)識(shí)Person中的name,而不是Student中的name.

我們看下運(yùn)行結(jié)果:

startWork: Man-Person Mark-Student [at (FieldMethod.java:13)]startWork: Mark-Student Mark-Student [at (FieldMethod.java:14)]

驗(yàn)證了我們的猜測(cè),可見屬性是綁定類型的,而方法是綁定對(duì)象的。

或者說(shuō)屬性是在編譯器就確認(rèn)的,而方法是動(dòng)態(tài)綁定(多態(tài))。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长岭县| 婺源县| 工布江达县| 通州区| 桦川县| 广灵县| 福泉市| 广灵县| 青冈县| 施甸县| 顺平县| 右玉县| 双辽市| 八宿县| 句容市| 灌阳县| 鹰潭市| 弥勒县| 阿坝| 阳信县| 保定市| 宜昌市| 九台市| 赤水市| 深州市| 建德市| 寿宁县| 苍南县| 昭通市| 安龙县| 苍梧县| 泗水县| 莱阳市| 万年县| 大化| 广宁县| 甘谷县| 连云港市| 西充县| 关岭| 维西|