1.final 參考博文:http://lavasoft.blog.51cto.com/62575/18771/java
根據程序上下文環境,Java關鍵字final有「這是沒法改變的」或者「終態的」含義,它能夠修飾非抽象類、非抽象類成員方法和變量。你可能出於兩種理解而須要阻止改變:設計或效率。工具
final類不能被繼承,沒有子類,final類中的方法默認是final的。
final方法不能被子類的方法覆蓋,但能夠被繼承。
final成員變量表示常量,只能被賦值一次,賦值後值再也不改變。
final不能用於修飾構造方法。
注意:父類的private成員方法是不能被子類方法覆蓋的,而且是不可繼承的。spa
public class Testfinal { public final void print(final String abc) { System.out.println(abc); abc="898";/***不能夠改變**/ } public static void main(String[] args) { //Testfinal a = new B(); //a.print(); B b = new B(); b.print("456"); b.print("789"); }
2.public abstract interface與public interface 區別.net
interface自己就已是abstract的了,因此interface和abstract interface從語意上沒有任何區別。出現這種用法,有種多是使用了反編譯工具查看jar包的源碼時看到abstract interface這一語法的,其實這只是interface的完整表述而已,樓主能夠看看jar包的源碼文件,應該是沒有abstract這個關鍵字的。
3.匿名內部類設計
3.一、引言code
public abstract interface Runnable/***接口**/ { public abstract void run(); } /***匿名類實例化**/ new Runnable() { public void run() { acc.deposit(100.0f); acc.withdraw(100.0f); } };
3.2.匿名內部類(Anonymous Inner Class) 對象
參考博文:http://blog.csdn.net/haobo920/article/details/5777476blog
在類及其方法中,能夠定義一種匿名類,匿名類有如下幾個特色。
(1)這種類不取名字,而直接用其父類的名字或者它所實現的接口的名字。
(2)類的定義與建立該類的一個實例同時進行,即類的定義前面有一個new。不使用
關鍵詞class,同時帶上()表示建立對象。也就是說,匿名類的定義方法是:
new 類名或接口名() { ……… }
(3)類名前面不能有修飾符。
(4)類中不能定義構造方法,由於它沒有名字。也正是這個緣由,在構造對象時,也
不能帶參數,由於默認構造方法不能帶參數。繼承