匿名内部类
1 interface IMessage{ 2 public void print(); 3 } 4 public class Newbegin{ 5 public static void main(String args[]) { 6 IMessage msg=new IMessage(){ 7 public void print(){ 8 System.out.println("hello world!"); 9 } 10 };11 fun(msg); 12 }13 public static void fun(IMessage temp){14 temp.print();15 }16 }
通过这样的程序我们可以得出一个结论:基本上搞匿名内部类都是在接口或者抽象类的形式上完成
范例:在抽象类中使用匿名内部类
1 abstract class Message{ 2 public void print(){ 3 System.out.println(this.getInfo()); 4 } 5 public abstract String getInfo(); 6 } 7 public class Newbegin{ 8 public static void main(String args []) { 9 fun(new Message(){10 public String getInfo(){11 return "www.jiayou.com";12 }13 });14 }15 public static void fun(Message temp){16 temp.print();17 }18 }
强调了:一个普通类尽量不要再去由子类继承,能够继承的只是抽象类和接口,所以可以在普通类上使用匿名内部类的形式来定义子类,但是从正常的开发逻辑这些是错误的