課程5.4之函數(shù)的復(fù)寫(override)


轉(zhuǎn)發(fā)請注明出處:
安卓猴的博客(http://sunjiajia.com)


本節(jié)課程將學(xué)習(xí)以下內(nèi)容:

  • 函數(shù)的復(fù)寫(override)
  • 使用super調(diào)用父類的成員函數(shù)

函數(shù)的復(fù)寫(override)

復(fù)寫(override),也被稱為覆蓋或者重寫。
在你對父類的成員方法不滿意的時(shí)候,你可以在子類中復(fù)寫這個(gè)方法,來寫出符合自己要求的方法。

特點(diǎn):

  • 1.在具有父子關(guān)系的兩個(gè)類當(dāng)中;
  • 2.子類和父類中各有一個(gè)函數(shù),這個(gè)函數(shù)的定義(返回值類型,函數(shù)名和參數(shù)列表)完全相同,那么它們的關(guān)系就是復(fù)寫。

使用super調(diào)用父類的成員函數(shù)

左右:

減少子類復(fù)寫父類的成員方法時(shí)出現(xiàn)的重復(fù)代碼。

例子:(請動手)

1.新建一個(gè)名為Person.java的Java源文件:

class Person{
  String name;
  int age;

  void introduce(){
    System.out.println("我的名字叫 " + this.name + ",我的年齡是 " + this.age);
  }
}

2.新建一個(gè)名為Student.java的Java源文件:

class Student extends Person{
  int grade;
  // 復(fù)寫(override),也被稱為覆蓋或者重寫
  void introduce(){
    // 使用super調(diào)用父類Person的成員函數(shù);
    // 它不一定必須寫在第一行。
    super.introduce();
    System.out.println("我的年級是 " + grade);
  }
}

3.新建一個(gè)名為Demo01.java的Java源文件:

class Demo01{
  public static void main(String[] args) {
    Student stu01 = new Student();
    stu01.name = "zhang3";
    stu01.age = 19;
    stu01.grade = 8;
    stu01.introduce();

    Person p1 = new Person();
    p1.name = "zhang3";
    p1.age = 19;
    p1.introduce();

  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容