從最后的Class1類開始,創(chuàng)建Child類的對(duì)象,對(duì)象名為myC,引用對(duì)象myC的方法printAll(),由于Child類是Parent派生的子類,在Parent的子類Child是定義了一個(gè)和父類同名的方法printMe(),覆蓋了父類的printMe()方法,用super.printMe();是為了調(diào)用父類的同名方法,在此先輸出parent
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
接著運(yùn)行,this.printMe();語句,this表示是當(dāng)前類,就是調(diào)用自己定義的printMe()方法,輸出child
然后調(diào)用printMe();方法,如果調(diào)用的時(shí)候沒有聲明是調(diào)用父類的方法,則默認(rèn)為是調(diào)用當(dāng)前類的方法,所以輸出child
本人也是菜鳥,不知道這么說你懂不懂。
實(shí)現(xiàn)思路就是有一個(gè)類Point,之后這個(gè)類有兩個(gè)私有成員變量,之后可以通過set和get方法進(jìn)行賦值和數(shù)值讀?。?/p>
public class Point {
private String x;
private String y;
/**
* 默認(rèn)構(gòu)造函數(shù)
*/
public Point(){
}
/**
*有x和y的構(gòu)造方法。
*/
public Point(String x,String y){
this.x=x;
this.y=y;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
class?A?{
double?f(double?x,?double?y)?{
return?x?+?y;
}
int?getNumber(int?a)?{
return?a?+?1;
}
static?int?g(int?n)?{
return?n?*?n;
}
int?m;
int?getM()?{
return?m;
}
int?seeM(){return?m;}
}
class?B?extends?A?{
double?f(int?x,?int?y)?{
return?x?*?y;
}
int?getNumber(int?a)?{
return?a?+?100;
}
int?xx()?{
return?11;
}
static?int?g(int?n)?{
int?m?=?A.g(n);
return?m?+?n;
}
int?m;
int?getM()?{
return?m?+?100;
}
}
class?E?{
public?static?void?main(String[]?args)?{
B?b?=?new?B();
System.out.println(b.f(3,?5));//?15.0
System.out.println(b.f(3.0,?5.0));?//?8.0
A?a?=?new?A();
System.out.println(a.getNumber(10));//?11
a?=?new?B();//?原因?yàn)锳的引用,B的對(duì)象,A的引用a指向B對(duì)象,此時(shí)的a只會(huì)擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會(huì)使用B的方法
System.out.println(a.getNumber(10));//?110
System.out.println(b.f(10.0,?8.0));?//?18.0
System.out.println(b.g(3));//?12
a?=?new?B();//?原因?yàn)锳的引用,B的對(duì)象,A的引用a指向B對(duì)象,此時(shí)的a只會(huì)擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會(huì)使用B的方法
System.out.println(a.f(10.0,?8.0));?//?18.0
System.out.println(a.g(3));//?9
b.m?=?20;
System.out.println(b.getM());//?120
A?a1?=?b;//?a1指向?qū)ο骲
a1.m?=?-100;//?a1變量賦值-100
System.out.println(a1.getM());//?120:?a1.getM()==實(shí)質(zhì)上已經(jīng)被b的getM覆蓋,且此時(shí)用的是b的變量100,調(diào)用之后結(jié)果為20+100?=?120
System.out.println(b.seeM());//?-100:?b的seeM()來自父類A,當(dāng)然會(huì)調(diào)用父類的A.m=-100,所以此時(shí)結(jié)果為-100
}
}
class?Father?{
private?int?money?=?12;
float?height;
int?seeMoney(){return?money;}
}
class?Son?extends?Father?{
int?height;
int?lookMoney()?{
int?m?=?seeMoney();
return?m;
}
}
class?EE?{
public?static?void?main(String[]?args)?{
Son?erzi?=?new?Son();
//?erzi.money?=?300;//?錯(cuò)誤原因在Son沒有money這一屬性,什么樣的引用對(duì)應(yīng)什么樣的變量和方法
//?erzi.height?=?1.78F;//?類型錯(cuò)誤
}
}
abstract?class?XX?{
//?只能設(shè)置可視性修飾符“公用”或“受保護(hù)”中的一個(gè)
public?static?void?cry(){}
abstract?float?cry1();
}
網(wǎng)站欄目:頂點(diǎn)覆蓋問題java代碼,頂點(diǎn)覆蓋問題java代碼解析
地址分享:http://aaarwkj.com/article24/dssghce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、微信小程序、品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)