1. 程式人生 > >java簡單匿名內部類練習

java簡單匿名內部類練習

 匿名內部類就是沒有名字的內部類

匿名內部類的三種情況:
一、繼承式的匿名內部類
二、介面式的匿名內部類

三、引數式的匿名內部類

在使用匿名內部類時,要記住以下幾個原則:
(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();
 }