匿名内部类

匿名内部类 :是内部类的简化写法
本质:是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。

  • 1.以接口举例,当你使用一个接口时,似乎得做如下几步操作,
    • 1.定义子类
    • 2.重写接口中的方法
    • 3.创建子类对象
    • 4.调用重写后的方法
      但我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快 捷方式。

前提: 匿名内部类必须继承一个父类或者实现一个父接口。
格式:

		new 父类名或者接口名() {
            // 方法重写 
            @Override
            public void method() {
                // 执行语句 } 
            }
        }

示例:

public abstract class FlyAble{
    public abstract void fly();
}
public class InnerDemo { 
    public static void main(String[] args) { 
        /*1.等号右边:是匿名内部类,定义并创建该接口的子类对象 
        2.等号左边:是多态赋值,接口类型引用指向子类对象 
        */
        FlyAble f = new FlyAble(){ 
            public void fly() { 
                System.out.println("我飞了~~~"); 
            } 
        };//调用 fly方法,执行重写后的方法 
        f.fly(); 
    } 
}

在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递

public class InnerDemo2 { 
    public static void main(String[] args) { 
        /*1.等号右边:定义并创建该接口的子类对象 
        2.等号左边:是多态,接口类型引用指向子类对象 
        */
        FlyAble f = new FlyAble(){ 
            public void fly() { 
                System.out.println("我飞了~~~"); 
            } 
        };// 将f传递给showFly方法中 
        showFly(f); 
    }
    public static void showFly(FlyAble f) {
        f.fly(); 
    } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值