private class Closure implements Teachable

来源:互联网 发布:小偷公司知乎 编辑:程序博客网 时间:2024/05/23 02:03
interface Teachable{void work();}class Programmer{private String name;//Programmer类的两个构造器public Programmer(){}public Programmer(String name){this.name = name;}public void setName(String name){this.name = name;}public String getName(){return this.name;}public void work(){System.out.println(name + "在灯下认真敲键盘...");}}public class TeachableProgrammer extends Programmer{public TeachableProgrammer(){}public TeachableProgrammer(String name){super(name);}//教学工作依然由TeachableProgrammer类定义private void teach(){System.out.println(getName() + "教师在讲台上讲解...");}private class Closure implements Teachable{/* 非静态内部类回调外部类实现work方法,非静态内部类引用的作用仅仅是 向客户类提供一个回调外部类的途径 */public void work(){teach();}}//返回一个非静态内部类引用,允许外部类通过该非静态内部类引用来回调外部类的方法public Teachable getCallbackReference(){return new Closure();}public static void main(String[] args){TeachableProgrammer person=new TeachableProgrammer("李刚");person.work();Teachable teacher=person.getCallbackReference();teacher.work();}}/*李刚在灯下认真敲键盘...李刚教师在讲台上讲解...请按任意键继续. . .*/

原创粉丝点击