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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

final方法覆盖与重载问题以及不同访问权限问题

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 final方法覆盖与重载问题以及不同访问权限问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先看兩個代碼
建立一個worker類,類中聲明了兩個final修飾的方法,out1(),out()方法是private權限

class worker{protected int a;public void work() {println("work");}private final void T() {println("worker T");}private final void out() {T();println("worker out");}private final void out1() {println("worker out1");} }

建立一個boss類,該類繼承了worker類。
在這個類中成功聲明了一個out()和out1()方法,均為public。

class boss extends worker{public boss() {println("hello boss ");}private final void T() {println("boss T");}public final void out() {T();println("boss out");}public final void out1() {println("boss out1");} }

寫一個測試類

boss m=new boss();m.out();m.out1();worker n=m;//向上轉型,可以不管//n.out();錯誤//n.out1();錯誤

輸出結果為

hello boss
boss T
boss out
boss out1

可以看到兩個類中有完全一樣的T()方法

private final void T() {println("...T");}

但當你把private改為其他的public等時便會報錯,這是為什么呢?
因為如果某方法為private,他就只是隱藏在類中的程序代碼,只不過是在兩個類中有了相同的名稱而已。如果是public,protected,包訪問權限的話,就不會出現只是相同名稱的情況。
所以上面的T方法并沒有發生覆蓋,只是一個新的方法。

總結

以上是生活随笔為你收集整理的final方法覆盖与重载问题以及不同访问权限问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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