繼承中方法的重寫和抽象類

       定義:

           子類中出現與父類一模一樣的方法時,會出現覆蓋操作,也稱爲override重寫、複寫或者覆蓋。'' 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容

         比如手機,當描述一個手機時,它具有發短信,打電話,顯示來電號碼功能,後期由於手機需要在來電顯示功能中增加顯示姓名和頭像,這時可以重新定義一個類描述智能手機,並繼承原有描述手機的類。並在新定義的類中覆蓋來電顯示功能,在其中增加顯示姓名和頭像功能。

          重寫注意事項有

1,子類方法覆蓋父類方法,必須要保證權限大於等於父類權限。

2,子類與父類的方法聲明必須一模一樣:函數的返回值類型函數名 參數列表都要一樣

           當子類的成員與父類的成員變量重名時如何訪問變量

1.當子類的成員與父類的成員變量重名時,在子類中直接成員變量或使用this.成員變量名稱訪問本類的成員變量

2,子類的成員與父類的成員變量重名時,在子類中,super.成員變量訪問父類的成員變量

       抽象類,抽象方法的定義

被abstract修飾,只有方法聲明沒有方法主體的方法就是抽象方法

被abstract修飾類就是抽象類

=========================================================

例題

  用代碼描述   

 四個輪子的白色的汽車可以跑和加油

 兩個輪子的紅色電動自行車可以跑和充電

 要求: 把汽車和電動自行車的共性抽取到交通工具類中

  /*

1.定義交通工具類(Vehicle)

   a)成員變量

      i.輪子個數 wheel

      ii.顏色 color

   b)成員方法

      i.跑 run() 

      1.打印格式: 4個輪子白色的車在跑

   c)要求:

      i.成員變量不帶權限修飾符,方法是公共權限的.

 */

publicclass Vehicle {

// a)成員變量

//    i.輪子個數 wheel

   intwheel;

//    ii.顏色 color

   Stringcolor;

//b)成員方法

// i.跑 run() 

// 1.打印格式: 四個輪子白色的車在跑

   publicvoid run(){

      System.out.println(wheel+"個輪子"+color+"的車在跑");

   }

}

 

/*

 2.定義小汽車類(Car),繼承Vehicle類

   a)成員方法:加油 (addGasoline()))

      i.在方法中的輸出格式爲: 4個輪子的白色小汽車在加油

 */

publicclass Carextends Vehicle{

// a)成員方法:加油 (addGasoline()))

//    i.在方法中的輸出格式爲: 4個輪子的白色小汽車在加油

   publicvoid addGasoline(){

      System.out.println(wheel+"個輪子的"+color+"小汽車在加油");

   }

}

 

/*

 3.定義電動車類(ElectricBicycle),繼承Vehicle類

   a)成員方法:充電 (charge())

      i.在方法中的輸出格式爲: 2個輪子的黑色電動自行車在充電

 */

publicclass ElectricBicycleextends Vehicle {

// a)成員方法:充電 (charge())

//    i.在方法中的輸出格式爲: 2個輪子的黑色電動自行車在充電

   publicvoid charge(){

      System.out.println(wheel+"個輪子的"+color+"電動自行車在充電");

   }

}

 

/*   

4.定義測試類Test

   c)提供main方法

   d)在main方法中

      i.使用空參構造,創建Car 對象c

      ii.把c對象的成員wheel 賦值爲 4

      iii.把c對象的成員color賦值爲 白色

      iv.調用c對象成員方法run方法

      v.調用c對象的成員方法addGasoline()

      vi.使用空參構造,創建ElectricBicycle對象eb

      vii.eb對象的成員wheel 賦值爲2

      viii.ed對象的成員color賦值爲黑色

      ix.調用ed對象成員方法run方法

      x.調用ed對象成員方法charge方法

 */

publicclass Test {

   publicstaticvoid main(String[] args) {

//    i.使用空參構造,創建Car 對象c

      Carc = new Car();

//    ii.把c對象的成員wheel 賦值爲 4

      c.wheel = 4;

//    iii.把c對象的成員color賦值爲 白色

      c.color = "白色";

//    iv.調用c對象成員方法run方法

      c.run();

//    v.調用c對象的成員方法addGasoline()

      c.addGasoline();

//    vi.使用空參構造,創建ElectricBicycle對象eb

      ElectricBicycleeb = new ElectricBicycle();

//    vii.eb對象的成員wheel 賦值爲2

      eb.wheel = 2;

//    viii.ed對象的成員color賦值爲黑色

      eb.color = "黑色";

//    ix.調用ed對象成員方法run方法

      eb.run();

//    x.調用ed對象成員方法charge方法

      eb.charge();

   }

}








發佈了56 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章