JAVA面對對象(三)——Super、static、final關鍵字,staticfinal

來源:互聯網
上載者:User

JAVA面對對象(三)——Super、static、final關鍵字,staticfinal
Super

使用super關鍵字可以直接調用父類中的構造方法、屬性、普通方法

super調用父類構造方法的操作,與this調用構造方法一樣,語句必須放在子類構造方法的首行

 

public class Person {                //定義父類Person    private String name;            //定義name屬性    private int age;                //定義age屬性    public Person(String name,int age) {    //通過構造方法設定name、age            this.setName(name);                //設定name屬性內容        this.setAge(age);                //設定age屬性內容    }    public String getName() {   //取得name屬性        return name;    }    public void setName(String name) {  //設定name屬性        this.name = name;    }    public int getAge() {       //取得age值        return age;    }    public void setAge(int age) {    //設定age值        this.age = age;    }        public String getInfo(){   //資訊輸出        return "姓名:"+this.getName()+"; 年齡:"+this.getAge();    }}public class Student extends Person{    private String school;        //定義新屬性school    public Student(String name, int age, String school) {        super(name, age);                //調用父類中的構造方法        this.school = school;    }    public String getSchool() {        //取得school屬性        return school;    }    public void setSchool(String school) {    //設定school屬性        this.school = school;    }    @Override    public String getInfo() {        //覆寫父類中的方法        return super.getInfo()+" ;學校:"+this.getSchool(); //擴充父類方法    }    }public class Demo {    public static void main(String[] args) {        Student stu = new Student("李四", 25, "北京大學");        System.out.println(stu.getInfo());    //調用覆寫過得方法列印輸出    }}

運行結果:
姓名:李四; 年齡:25 ;學校:北京大學

 

從上面的程式中可以看出子類中使用super()方法調用了父類中含有兩個參數的構造方法,然後再覆寫了父類中的getInfo()方法,最後輸出內容是被子類覆寫過的內容;

super和this十分類似,都可以調用構造方法、屬性、普通方法。但是也有區別:

序號 區別點 this super
1 屬性訪問 訪問本類中的屬性,如果本類中沒有則從父類中尋找 訪問父類中的屬性
2 方法 訪問本類中的方法,如果本類中沒有則從父類中尋找 直接存取父類中的方法
3   調用構造 調用本類構造,必須放在構造方法首行 調用父類構造,必須放在子類構造方法首行
4 特殊 表示當前對象 無概念

 既然都可以調用構造方法,那麼this和super不可以同時出現,因為都要放在構造方法首行。另外,無論子類如何操作,最終先調用父類中的構造方法

static

static表示“全域”或者“靜態”的意思,用來修飾成員變數或成員方法;被static修飾的成員變數和成員方法獨立於該類的任何對象,也就說他不依賴於任何執行個體的對象,當該類被建立時它們也被建立;因此static對象可以在他的任何對象建立之前訪問,無需引用任何對象

static修飾的成員變數或成員方法習慣上稱作靜態變數或靜態方法可以直接通過類名來訪問,訪問文法為:

類名.靜態方法名(參數列表)

類名.靜態變數名

final

final表示的意思是最終,可以使用final關鍵字聲明類、屬性、方法

  • 使用final聲明的類不能有子類
  • 使用final聲明的方法不能被子類覆寫
  • 使用final聲明的變數即成為常量,常量不可修改

使用final聲明變數時,要求全部字母大寫

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.