很多朋友都想知道java的final是什么?下面就一起來解讀一下吧~
final是java中的一個關鍵字,意思為恒定不變,java中final數據具體有兩個含義:1、對于基本數據類型,表示永不改變的編譯時常量;2、對于普通對象,表示該引用恒定不變,不能指向另外一個對象,該對象本身是可以進行修改的。
final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,默認都是final的,在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,并且確信這個類不會再被擴展,那么就設計為final類,final方法不能被子類的方法覆蓋,但可以被繼承。
public?class?Test1?{? public?static?void?main(String[]?args)?{? ????//?TODO?自動生成方法存根? }? public?void?f1()?{? ????System.out.println("f1");? }? //無法被子類覆蓋的方法? public?final?void?f2()?{? ????System.out.println("f2");? }? public?void?f3()?{? ????System.out.println("f3");? }? private?void?f4()?{? ????System.out.println("f4");? }? }? public?class?Test2?extends?Test1?{? ???? public?void?f1(){????? ????System.out.println("Test1父類方法f1被覆蓋!");? }? public?static?void?main(String[]?args)?{? ????Test2?t=new?Test2();? ????t.f1();???? ????t.f2();?//調用從父類繼承過來的final方法? ????t.f3();?//調用從父類繼承過來的方法? ????//t.f4();?//調用失敗,無法從父類繼承獲得?,因為被私有修飾符修飾了。 }? }
以上就是小編今天的分享了,希望可以幫助到大家。