Java 匿名内部类
Java 匿名内部类
匿名内部类的存在作用;
interface Mesage{ public void print() ; } class Message implements Mesage { public void print() { System.out.println("Hello,World!") ; } } public class TestDemo { public static void main(String [] args) { fun(new Message()) ; } public static void fun(Message msg) { msg.print() ; } } |
正常的规律一个接口或者抽象类需要有子类,子类要覆写所有的抽象方法;但如果,message子类只使用唯一的一次;所以,可以采用匿名内部类的方式进行代码的简化。
interface Mesage{ public void print() ; }
public class TestDemo { public static void main(String [] args) { fun(new Message() { public void print() { System.out.println("Hello,World!") ; } }) ; } public static void fun(Message msg) { msg.print() ; } } |
上述的简便方法,称为 匿名内部类 使用匿名内部类前提是:必须基于接口或抽象类的应用;可以简约了一个继承/接口实现的子类的产生。
匿名内部类定义在方法中,方法的参数或者变量,要被匿名内部类所访问,必须加上 final 关键字。
匿名内部类帮助我们减少了无用的且必要的类的定义。