package zyx; //創建一個包
class SuperClass{ //創建父類SuperClass
private String string;
public SuperClass(){
string="父類"; //定義父類的構造方法SuperClass()
}
public void setValue(String s){
string=s; //定義父類的方法setValue()
}
public void showMessage(){
System.out.println("父類的信息有字符串:" +string);//定義父類的方法showMessage
}
}
class SubClass extends SuperClass{ //創建子類SubClass
public String string;
public char ch;
public SubClass(){ //定義子類的構造方法SubClass()
super(); //在子類的構造方法中通過super關鍵詞引用父類的構造方法
ch='C';
}
public void showMessage(){
super.showMessage(); //引用父類被覆蓋的方法showMessgae()
System.out.println("子類增加信息有字符:"+ch); //定義子類的方法showMessage()
}
}
public class SuperTest {
public static void main(String args[]){
SubClass sc=new SubClass();
sc.showMessage();
}
}
知識點:
在子類中有時需要使用父類的成員變量和成員方法,此時可以通過super關鍵字來實現。
super關鍵字主要應用於引用父類的構造方法,以及使用父類中被子類重寫的成員方法和隱藏的成員變量。
並且子類不能通過super關鍵字來訪問父類的私有成員,因爲父類的私有成員的作用域只在父類中有效。
從中知道了,由於父類中定義的私有成員無法被子類成員訪問,因此在子類SubClass中試圖通過super.string來訪問父類定義的成員變量string,這樣會產生編譯錯誤。