本文共 1053 字,大约阅读时间需要 3 分钟。
如果接口的实现类(或者是父类的子类),只需要使用唯一的一次,那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】
package inner_class;public interface My_interface { void my_method();}
package inner_class;public class My_interface_impl implements My_interface{ @Override public void my_method() { System.out.println("实现了接口"); }}
package inner_class;public class test_1 { public static void main(String[] args) { My_interface a=new My_interface_impl();//只使用一次 a.my_method(); }}
匿名内部类的定义格式
接口名称(类) 对象名=new 接口名称(类)(){ 覆盖重写所有抽象方法 };package inner_class;public interface My_interface { void my_method();}package inner_class;import java.sql.SQLOutput;public class test_1 { public static void main(String[] args) { My_interface a=new My_interface() { @Override public void my_method() { System.out.println("匿名内部类实现了接口"); } }; a.my_method(); }}
这样话,就不需要单独为一个接口去写一个实现类
格式解析:
1:new 代表创建对象的动作 2:接口名称就是匿名内部类需要实现哪个接口 3:{…}才是匿名内部类的内容,匿名内部类创建对象时只能使用唯一 一次匿名内部类是省略了【实现类、子类名称】,但是匿名对象是省略了【对象名称】,匿名内部类与匿名对象不是一回事
转载地址:http://wamen.baihongyu.com/