java簡單匿名內部類練習
阿新 • • 發佈:2018-12-26
匿名內部類就是沒有名字的內部類
匿名內部類的三種情況:
一、繼承式的匿名內部類
二、介面式的匿名內部類
匿名內部類的三種情況:
一、繼承式的匿名內部類
二、介面式的匿名內部類
三、引數式的匿名內部類
在使用匿名內部類時,要記住以下幾個原則:
(1)不能有購置方法,只能有一個實力。
(2)不能定義在任何靜態成員、靜態方法。
(3)不能是public.protected.private.static.
(4)一定是在new的後面,用其隱含實現一個介面或一個類。
(5)匿名內部類為區域性的,所以區域性內部類的所有限制都對其有效。
內部類的作用:
每個內部類都能獨立地承受來自一個(介面的)實現。所以無論外部類是否已經繼承了某個(介面的)實現,
對於內部類都沒有影響。
如果沒有內部類提供的可以繼承多個具體的或抽象的類的能力,一些設計與程式設計問題就很難解決。從這個教的看,內部類的使得多繼承的解決方案變得完整。介面解決了部分問題,而內部類有效地實現了“多重繼承”。
public class test_12_3 { public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.print_3();//介面式的匿名內部類 outer.print_4(new Child() //引數式匿名內部類 { public void desc() { System.out.print("引數式匿名內部類"); } }); } } class OuterClass { public void print_3() { /*class InnerClass_3 implements Child//繼承式的匿名內部類 { }*/ //也是Android重要寫法 Child c = new Child()//直接呼叫內部類(new的是匿名內部類) { public void desc()//匿名內部類物件 { System.out.println("匿名內部類"); } }; c.desc();// 內部實現 } public void print_4(Child c) { c.desc(); } } interface Child //匿名內部類練習 { public void desc(); }