Java中父類(lèi)和子類(lèi)之間的轉(zhuǎn)換操作示例
本文實(shí)例講述了Java中父類(lèi)和子類(lèi)之間的轉(zhuǎn)換操作。分享給大家供大家參考,具體如下:
一、父類(lèi)引用強(qiáng)轉(zhuǎn)成為子類(lèi)引用
package learn20180720;
public class People {
private String name;
private Integer age;
private Double height;
public People(){
this.name = "";
this.age = 0 ;
this.height = 0.0;
}
public People(String name, Integer age, Double height) {
super();
this.name = name;
this.age = age;
this.height = height;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
public void tellObjectName(People p) {
System.err.println(p.name);
}
public void sayInformation() {
System.err.println("我的名字叫做:"+this.name+"我的年齡是:"+this.age+"我的身高是"+this.height);
}
}
package learn20180720;
public class Chinese extends People{
private String country;
public Chinese(){
super();
country = "";
}
public Chinese(String aname,Integer aage,Double aheight) {
super(aname,aage,aheight);
this.country = "中國(guó)";
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public void sayInformation() {
// TODO Auto-generated method stub
System.err.println("我的名字叫做:"+this.getName()+" 我的年齡是:"+this.getAge()+" 我的身高是:"+this.getHeight()+" 我的國(guó)家是:"+this.country);
}
}
package learn20180720;
public class TestPeCh {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p1 = new Chinese();
Chinese c1 = (Chinese)p1;
}
}


可以看到,p1無(wú)法訪(fǎng)問(wèn)子類(lèi)中的特有的方法(父類(lèi)引用可以訪(fǎng)問(wèn)子類(lèi)中重寫(xiě)父類(lèi)中的方法),但是強(qiáng)轉(zhuǎn)成為子類(lèi)類(lèi)型的引用c1之后,c1就可以訪(fǎng)問(wèn)子類(lèi)中所有的方法啦。
二、父類(lèi)不可以強(qiáng)轉(zhuǎn)成為子類(lèi)
package learn20180720;
public class TestPeCh {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p1 = new People();
Chinese c1 = (Chinese)p1;
}
}

報(bào)錯(cuò)了!
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類(lèi) Collection和Map
下面小編就為大家?guī)?lái)一篇淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類(lèi) Collection和Map。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
如何使用stream從List對(duì)象中獲取某列數(shù)據(jù)
這篇文章主要介紹了如何使用stream從List對(duì)象中獲取某列數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
關(guān)于BufferedReader的讀取效率問(wèn)題
這篇文章主要介紹了關(guān)于BufferedReader的讀取效率問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java結(jié)合Vue項(xiàng)目打包并進(jìn)行服務(wù)器部署
本文主要介紹了Java結(jié)合Vue項(xiàng)目打包并進(jìn)行服務(wù)器部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Java中null的意義及其使用時(shí)的注意事項(xiàng)說(shuō)明
這篇文章主要介紹了Java中null的意義及其使用時(shí)的注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

