this,super關鍵字(二)

super關鍵字

1.super可用於訪問父類中定義的屬性
2.super可用於調用父類中定義的成員方法
3.super可用於在子類構造中調用父類的構造器
注意:

  1. 當子類與父類中有同名的屬性時,可以通過”super.屬性”顯式的調用弗雷中聲明的屬性

  2. 當子類中重寫父類的方法以後,在子類中若想再顯式的調用父類的被重寫的方法,就需要使用”super.方法”

  3. super修飾構造器,通過在子類中使用”super(形參列表)”來顯式的調用父類中指定的構造器

  4. 在構造內部,”super(形參列表)”必須要聲明在首行

  5. 在構造器內部,”this(形參列表)”或”super(形參列表)”只能出一個

  6. 當構造器中,不顯式的調用”this(形參列表)”或”super(形參列表)”其中任何一個,默認調用的是父類中的空參構造器

建議:設計一個類時,儘量要提供一個空參的構造器

class Fu {  
  Fu() {  
         System.out.println("fu");  
         }  
           }  

public class Zi extends Fu {  
 Zi() {  
   super();//調用父類的構造方法,一定要放在方法的首個語句  
   System.out.println("Zi");  
           }  


public static void main(String argv[]) {  
  Checket c = new Checket();}  
}  
class Person {  

    public static void prt(String s) {  
        System.out.println(s);  
    }  
    Person() {  
        prt("A Person.");  
    }  
    Person(String name) {  
        prt("A person name is:" + name);  
    }  
}  

public class Chinese extends Person {  
    Chinese() {  
        super(); // 調用父類構造函數(1)  
        prt("A chinese.");// (4)  
    }  
    Chinese(String name) {  
        super(name);// 調用父類具有相同形參的構造函數(2)  
        prt("his name is:" + name);  
    }  
    Chinese(String name, int age) {  
        this(name);// 調用當前具有相同形參的構造函數(3)  
        prt("his age is:" + age);  
    }  
    public static void main(String[] args) {  
        Chinese cn = new Chinese();  
        cn = new Chinese("kevin");  
        cn = new Chinese("kevin", 22);  
    }  
}  

輸出結果爲:

A Person.
A chinese.
A person name is:kevin
his name is:kevin
A person name is:kevin
his name is:kevin
his age is:22

this關鍵字詳見:http://blog.csdn.net/uponz/article/details/79101175
this,super區別詳見:http://blog.csdn.net/uponz/article/details/79116429

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章