第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下所示,有個問題不是很理解,關(guān)于super和this關(guān)鍵字的使用?

如下所示,有個問題不是很理解,關(guān)于super和this關(guān)鍵字的使用?

慕雪6442864 2021-05-17 18:10:22
調(diào)試并實現(xiàn)利用super關(guān)鍵字重寫方法。源文件1: Employee.java public class Employee {public String name = "zhangSan";public double salary = 5000;public String getDetails() {return " Name:" + name + "\n" + " Salary:" + salary;}}源文件2: Manager.javapublic class Manager extends Employee {pubilc String department = "Office";public String getDetails() {return " Name:" + name + "\n" + " Salary:" + salary + "\n" + " Department: " + department;}}源文件3: TestEx203a.java public class TestEx203a{public static void main(String args[ ]) {Employee e = new Employee();Manager m = new Manager();System.out.println("Employee:"+"\n" +e.getDetails());System.out.println("Manager:"+"\n" +m.getDetails());}}
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

您好,第一、在子類構(gòu)造方法中要調(diào)用父類的構(gòu)造方法,用“super(參數(shù)列表)”的方式調(diào)用,參數(shù)不是必須的。同時還要注意的一點是:“super(參數(shù)列表)”這條語句只能用在子類構(gòu)造方法體中的第一行。
第二、當(dāng)子類方法中的局部變量或者子類的成員變量與父類成員變量同名時,也就是子類局部變量覆蓋父類成員變量時,用“super.成員變量名”來引用父類成員變量。當(dāng)然,如果父類的成員變量沒有被覆蓋,也可以用“super.成員變量名”來引用父類成員變量,不過這是不必要的。
第三、當(dāng)子類的成員方法覆蓋了父類的成員方法時,也就是子類和父類有完全相同的方法定義(但方法體可以不同),此時,用“super.方法名(參數(shù)列表)”的方式訪問父類的方法。
package org.leizhimin;
public class Father {
public String v="Father";
public String x="輸出了Father類的public成員變量x!!!";

public Father() {
System.out.println("Father構(gòu)造方法被調(diào)用!");
}

public Father(String v){
this.v="Father類的帶參數(shù)構(gòu)造方法!運行了.";
}
public void outinfo(){
System.out.println("Father的outinfo方法被調(diào)用");
}
public static void main(String[] args) {
// TODO 自動生成方法存根
}
}

package org.leizhimin;
public class Son extends Father{
public String v="Son";

public Son() {
super(); //調(diào)用超類的構(gòu)造方法,只能放到第一行.
System.out.println("Son無參數(shù)構(gòu)造方法被調(diào)用!");
//super(); //錯誤的,必須放到構(gòu)造方法體的最前面.
}

public Son(String str){
super(str);
System.out.println("Son帶參數(shù)構(gòu)造方法被調(diào)用!");
}
//覆蓋了超類成員方法outinfo()
public void outinfo(){
System.out.println("Son的outinfo()方法被調(diào)用");
}

public void test(){

String v="哈哈哈哈!"; //局部變量v覆蓋了成員變量v和超類變量v

System.out.println("------1-----");
System.out.println(v); //輸出局部變量v
System.out.println(this.v); //輸出(子類)成員變量v
System.out.println(super.v); //輸出超類成員變量v

System.out.println("------2-----");
System.out.println(x); //輸出超類成員變量v,子類繼承而來
System.out.println(super.x); //輸出超類成員變量v

System.out.println("------3-----");
outinfo(); //調(diào)用子類的outinfo()方法
this.outinfo(); //調(diào)用子類的outinfo()方法
super.outinfo(); //調(diào)用父類的outinfo()方法
}

public static void main(String[] args) {
new Son().test();

}
}

子類Son運行結(jié)果:

Father構(gòu)造方法被調(diào)用!
Son無參數(shù)構(gòu)造方法被調(diào)用!
------1-----
哈哈哈哈!
Son
Father
------2-----
輸出了Father類的public成員變量x!!!
輸出了Father類的public成員變量x!!!
------3-----
Son的outinfo()方法被調(diào)用
Son的outinfo()方法被調(diào)用
Father的outinfo方法被調(diào)用


查看完整回答
反對 回復(fù) 2021-05-23
?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

1.
main 因為是static靜態(tài)的,不能指示新創(chuàng)建的類和父類
this(有參數(shù)/無參數(shù)) 用于調(diào)用本類相應(yīng)的構(gòu)造函數(shù)
super(有參數(shù)/無參數(shù)) 用于調(diào)用父類相應(yīng)的構(gòu)造函數(shù)
this. 后跟方法或?qū)傩?指示本類的方法或?qū)傩?br/>super. 后跟方法或?qū)傩?父類中指明的public protected)

2.
調(diào)用父類方法改變此變量就只能改變父類里面的此變量,而不能改變子類里面的變量,為什么呢?

調(diào)用父類的方法改變的變量只能是父類的變量這是必然的,因為父類中不存在子類新加的變量,因此只能改變父類中的變量

查看完整回答
反對 回復(fù) 2021-05-23
  • 2 回答
  • 0 關(guān)注
  • 351 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號