重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
從最后的Class1類開始,創(chuàng)建Child類的對象,對象名為myC,引用對象myC的方法printAll(),由于Child類是Parent派生的子類,在Parent的子類Child是定義了一個和父類同名的方法printMe(),覆蓋了父類的printMe()方法,用super.printMe();是為了調(diào)用父類的同名方法,在此先輸出parent
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站設(shè)計、成都網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
接著運行,this.printMe();語句,this表示是當(dāng)前類,就是調(diào)用自己定義的printMe()方法,輸出child
然后調(diào)用printMe();方法,如果調(diào)用的時候沒有聲明是調(diào)用父類的方法,則默認(rèn)為是調(diào)用當(dāng)前類的方法,所以輸出child
本人也是菜鳥,不知道這么說你懂不懂。
實現(xiàn)思路就是有一個類Point,之后這個類有兩個私有成員變量,之后可以通過set和get方法進(jìn)行賦值和數(shù)值讀取:
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();//?原因為A的引用,B的對象,A的引用a指向B對象,此時的a只會擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會使用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();//?原因為A的引用,B的對象,A的引用a指向B對象,此時的a只會擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會使用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()==實質(zhì)上已經(jīng)被b的getM覆蓋,且此時用的是b的變量100,調(diào)用之后結(jié)果為20+100?=?120
System.out.println(b.seeM());//?-100:?b的seeM()來自父類A,當(dāng)然會調(diào)用父類的A.m=-100,所以此時結(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;//?錯誤原因在Son沒有money這一屬性,什么樣的引用對應(yīng)什么樣的變量和方法
//?erzi.height?=?1.78F;//?類型錯誤
}
}
abstract?class?XX?{
//?只能設(shè)置可視性修飾符“公用”或“受保護(hù)”中的一個
public?static?void?cry(){}
abstract?float?cry1();
}