內部類之匿名內部類
阿新 • • 發佈:2019-01-04
匿名內部類
匿名內部類顧名思義,即沒有名字的內部類,一般表現形式為使用父類的引用指向你一個匿名物件,方法的實現在匿名語句塊中完成
eg:
Animal a = new Animal() { @Override public void sleep() { System.out.println("休眠一下"); } }; //輸出地址非Animal物件,而是包含了“$”符號的物件地址(即內部類) System.out.println(a); a.sleep(); Cat c = new Cat(){ @Override public void eat() { System.out.println("吃貓糧"); } }; /* 針對以下介面建立匿名內部類物件 interface Sportable{ void run(); void jump(); } */
匿名內部類與回撥機制
Button.java
public class Button { //內部介面 public interface OnClickListener{ //回撥函式(鉤子函式) void click(); } public void setOnClickListener(OnClickListener lis){ System.out.println("準備觸發"); lis.click(); System.out.println("清理資源"); } }
ButtonTest.java
public class ButtonTest{ public static void main(String[] args) { Button btn = new Button(); //匿名內部類使用 btn.setOnClickListener(new OnClickListener() { //回撥機制 @Override public void click() { System.out.println("事件被觸發。。。。"); } }); } }