Java 匿名类

1、匿名类

 匿名类,就是没有名称的类,其名称由Java编译器给出,一般是形如:外部类名称+$+匿名类顺序,没有名称也就是其他地方就不能引用,不能实例化,只用一次,当然也就不能有构造器。 

 匿名类根据位于地方不同分为:成员匿名类和局部匿名类。

 匿名类不能使用任何关键字和访问控制符,匿名类和局部类访问规则一样,只不过内部类显式的定义了一个类,然后通过new的方式创建这个局部类实例,而匿名类直接new一个类实例,没有定义这个类。匿名类最常见的方式就是回调模式的使用,通过默认实现一个接口创建一个匿名类然后,然后new这个匿名类的实例。

2、实现方式

new 父类构造器(参数列表)|实现接口()  
    {  
     //匿名内部类的类体部分  
    }

匿名类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口。同时它也是没有class关键字,这是因为匿名内部类是直接使用new来生成一个对象的隐式引用。

1、接口继承举例参考上篇文章Java接口实例化

public class Test {  

  public static void Main() { 
    ... 
    btn.setOnClickListetener(new OnClickListener(){ //局部匿名类
        @Override
        public void onClick(View v) {  }
    });
   }  

public Runnable r = new Runnable()//成员匿名类
{
    @Override
    public void run()
    {
       ...
    }
};
}

2、类继承实现

public abstract class Bird {  public abstract int fly();  }

public class Test {

    public static void main(String[] args) {
        flyDis(new Bird() { public int fly() {  return 10000; } });
    }

    public static  void flyDis(Bird bird){
        System.out.println("能够飞" + bird.fly() + "米");
    }    
}

//打印出来:能够飞10000米

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值