Java中父類和子類之間的轉(zhuǎn)換操作示例
本文實例講述了Java中父類和子類之間的轉(zhuǎn)換操作。分享給大家供大家參考,具體如下:
一、父類引用強轉(zhuǎn)成為子類引用
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 = "中國";
}
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()+" 我的國家是:"+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無法訪問子類中的特有的方法(父類引用可以訪問子類中重寫父類中的方法),但是強轉(zhuǎn)成為子類類型的引用c1之后,c1就可以訪問子類中所有的方法啦。
二、父類不可以強轉(zhuǎn)成為子類
package learn20180720;
public class TestPeCh {
public static void main(String[] args) {
// TODO Auto-generated method stub
People p1 = new People();
Chinese c1 = (Chinese)p1;
}
}

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

