日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三次学JAVA再学不好就吃翔(part32)--方法重写

發布時間:2023/12/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三次学JAVA再学不好就吃翔(part32)--方法重写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考


文章目錄

    • 面向對象
      • 方法重寫
      • 方法重寫的注意事項


面向對象


方法重寫


  • 什么是方法重寫
    • 重寫:子父類出現了一模一樣的方法
  • 方法重寫的應用:
    • 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法。這樣,既沿襲了父類的功能,又定義了子類特有的內容。

  • 舉個例子(繼承父類方法,同時子類也有自己獨特的方法)
class AnimalBunnyTest1 {public static void main(String[] args) {Bunny b = new Bunny();b.play();} }class Animal {public void eat() {System.out.println("吃飯飯");}public void play() {System.out.println("玩球球");}}class Bunny extends Animal {public void play() {System.out.println("玩長耳朵");super.play();}}

輸出:

玩長耳朵 玩球球

方法重寫的注意事項


  • 方法重寫注意事項
    • 父類中私有方法不能被重寫

      • 因為父類私有方法子類根本就無法繼承
    • 子類重寫父類方法時,訪問權限不能更低

      • 子類權限最好和父類一致
    • 父類靜態方法,子類也必須通過靜態方法進行重寫

      • 其實這個算不上方法重寫
    • 注意區分重寫和重載。


  • 舉個例子1(訪問父類的私有方法)
class AnimalBunnyTest1 {public static void main(String[] args) {Bunny b = new Bunny();b.play();} }class Animal {public void eat() {System.out.println("吃飯飯");}private void play() {System.out.println("玩球球");}}class Bunny extends Animal {}

報錯:

---------- javac ---------- AnimalBunnyTest1.java:4: 錯誤: 找不到符號b.play();^符號: 方法 play()位置: 類型為Bunny的變量 b 1 個錯誤Output completed (4 sec consumed) - Normal Termination
  • 舉個例子2(子類權限比父類低)
class AnimalBunnyTest1 {public static void main(String[] args) {Bunny b = new Bunny();b.play();} }class Animal {public void eat() {System.out.println("吃飯飯");}public void play() {System.out.println("玩球球");}}class Bunny extends Animal {void play() {System.out.println("玩長耳朵");}}

報錯:

---------- javac ---------- AnimalBunnyTest1.java:21: 錯誤: Bunny中的play()無法覆蓋Animal中的play()void play() {^正在嘗試分配更低的訪問權限; 以前為public 1 個錯誤Output completed (5 sec consumed) - Normal Termination
  • 舉個例子3(父類為靜態方法)
class AnimalBunnyTest1 {public static void main(String[] args) {Bunny b = new Bunny();b.play();} }class Animal {public void eat() {System.out.println("吃飯飯");}public static void play() {System.out.println("玩球球");}}class Bunny extends Animal {public void play() {System.out.println("玩長耳朵");}}

報錯:

---------- javac ---------- AnimalBunnyTest1.java:21: 錯誤: Bunny中的play()無法覆蓋Animal中的play()public void play() {^被覆蓋的方法為static 1 個錯誤Output completed (4 sec consumed) - Normal Termination

總結

以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part32)--方法重写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。