JAVA回调机制是这样的么

  1. package com.test; 
  2.  
  3. public class CallBackTest { 
  4.      
  5.     public interface CallBack{ 
  6.         public void call(); 
  7.     } 
  8.      
  9.     public class Event{ 
  10.         private CallBack cb; 
  11.         public Event(CallBack cb){ 
  12.             this.cb = cb; 
  13.         } 
  14.         public final void doWork(){ 
  15.             System.out.println("正在处理事情......"); 
  16.             System.out.println("处理事情完毕"); 
  17.             cb.call(); 
  18.         } 
  19.     } 
  20.      
  21.     public void Test(){ 
  22.         Event t = new Event(new CallBack(){ 
  23.             @Override 
  24.             public void call() { 
  25.                 System.out.println("回调正在执行......"); 
  26.                 System.out.println("回调执行完毕"); 
  27.             }    
  28.         }) ; 
  29.         t.doWork(); 
  30.     } 
  31.      
  32.     public static void main(String[] args) { 
  33.         CallBackTest test = new CallBackTest(); 
  34.         test.Test(); 
  35.         test.TestA(); 
  36.         test.TestB(); 
  37.     } 
  38.      
  39.     public abstract class EventA implements CallBack{ 
  40.         public final void doWork(){ 
  41.             System.out.println("正在处理事情A......"); 
  42.             System.out.println("处理事情A完毕"); 
  43.             this.call(); 
  44.         } 
  45.     } 
  46.      
  47.     public void TestA(){ 
  48.         EventA t = new EventA(){ 
  49.             @Override 
  50.             public void call() { 
  51.                 System.out.println("回调A正在执行......"); 
  52.                 System.out.println("回调A执行完毕"); 
  53.             } 
  54.         }; 
  55.         t.doWork(); 
  56.     } 
  57.      
  58.      
  59.     public abstract class EventB { 
  60.         public abstract void call(); 
  61.         public final void doWork(){ 
  62.             System.out.println("正在处理事情B......"); 
  63.             System.out.println("处理事情B完毕"); 
  64.             this.call(); 
  65.         } 
  66.     } 
  67.      
  68.     public void TestB(){ 
  69.         EventB t = new EventB(){ 
  70.             @Override 
  71.             public void call() { 
  72.                 System.out.println("回调B正在执行......"); 
  73.                 System.out.println("回调B执行完毕"); 
  74.             } 
  75.         }; 
  76.         t.doWork(); 
  77.     } 
  78.