内部类(3)

内部类(3)

匿名内部类

 如果接口的实现类(或者是父类的子类)只使用唯一的一次,那么这种情况下就可以
 省略该类定义,而使用匿名内部类。
 定义格式:
 接口名(父类名) 对象名 = new 接口(父类)名(){
         //覆盖重写所有抽象方法
 };
 格式解析:
 1.new 代表创建对象的动作;
 2.接口名是匿名内部类需实现那些接口;
 3.{...}是匿名内部类的内容
 
 ps ;匿名内部类在创建对象时只能使用唯一的一次
     匿名内部类省略的是实现类/子类,匿名对象省略的是对象名

定义一个接口

 
public interface forAnonymous {
    public abstract void method();
}
 

使用匿名内部类去实现接口

 
public class Anonymous {
 ​
     public void nomethod(){
         forAnonymous non = new forAnonymous() {
             @Override
             public void method() {
                 System.out.println("匿名内部类覆盖重写了接口方法");
             }
         };
         non.method();
     }
 

使用匿名内部类

 public  static void main(String[] args){
 ​
         Anonymous anony = new Anonymous();
         anony.nomethod();//使用匿名内部类
 }

  

内部类可以单独继承父类或者实现接口,使得java的继承性更为完善。

 
原文地址:https://www.cnblogs.com/susexuexi011/p/13811640.html