更新時(shí)間:2021-06-24 來(lái)源:黑馬程序員 瀏覽量:
當(dāng)一個(gè)類的方法被final關(guān)鍵字修飾后,這個(gè)類的子類將不能重寫(xiě)該方法。接下來(lái)通過(guò)一個(gè)案例來(lái)進(jìn)行驗(yàn)證,如文件1所示。
文件1 Example09.java
// 定義Animal類 class Animal { // 使用final關(guān)鍵字修飾shout()方法 public final void shout() { } } // 定義Dog類繼承Animal類 class Dog extends Animal { // 重寫(xiě)Animal類的shout()方法 public void shout() { } } // 定義測(cè)試類 public class Example09 { public static void main(String[] args) { Dog dog=new Dog(); // 創(chuàng)建Dog類的實(shí)例對(duì)象 } }程序編譯報(bào)錯(cuò),如圖1所示。
圖1 運(yùn)行結(jié)果
文件1中,Dog類重寫(xiě)父類Animal中的shout()方法后,程序出現(xiàn)了“Cannot override the final method from Animal(無(wú)法重寫(xiě)父類final方法)”的錯(cuò)誤。由此可見(jiàn),被final關(guān)鍵字修飾的方法為最終方法,子類不能對(duì)該方法進(jìn)行重寫(xiě)。正是由于final的這種特性,當(dāng)在父類中定義某個(gè)方法時(shí),如果不希望被子類重寫(xiě),就可以使用final關(guān)鍵字修飾該方法。
Java中volatile關(guān)鍵字有什么作用?【Java培訓(xùn)】