1. 程式人生 > >javaSE 匿名內部類。定義匿名類的同時完成例項化同時完成方法呼叫

javaSE 匿名內部類。定義匿名類的同時完成例項化同時完成方法呼叫

Test.java:

package cn.xxx.demo;

public class Test {
	public static void main(String[] args) {
		//使用匿名內部類 (定義在方法中就是內部類)
		/*
		 *  定義實現類,重寫方法,建立實現類物件,一步搞定
		 *  格式:
		 *    new 介面或者父類(){   // 通過{}完成匿名類的定義
		 *       重寫抽象方法
		 *    };  // 可以在}後直接呼叫匿名物件的方法。
		 *    從 new開始,到分號結束
		 *    建立了介面的實現類的物件
		 */
		new Smoking(){  // 例項化匿名內部類的同時實現介面的抽象方法,同時呼叫匿名物件的方法。
			public void smoking(){  // 同時實現介面的抽象方法(相當於定義匿名實現類)
				System.out.println("人在吸菸");
			}
		}.smoking();  // 同時呼叫物件方法。
	}
}
Smoking.java(介面、父類):
package cn.xxx.demo;

public interface Smoking {
	public abstract void smoking();
}
/*
 *  實現類,實現介面 重寫介面抽象方法,建立實現類物件
 *  class XXX implements Smoking{
 *      public void smoking(){
 *      
 *      }
 *  }
 *  XXX x = new XXX();
 *  x.smoking(); 
 *  Smoking s = new XXX();
 *  s.smoking();
 *  
 *  匿名內部類,簡化問題:  定義實現類,重寫方法,建立實現類物件,合為一步完成
 */