内部类_匿名内部类作实际参数_方法内的匿名内部类

这篇博客探讨了Java中匿名内部类如何实现接口,并展示了在方法参数为接口类型时,如何使用匿名内部类作为实际参数传递。通过示例代码解释了匿名内部类的创建和方法重写,以及在实际编程中的应用场景。
package demo.oo;

interface Inter3 {
    public abstract void show1();

    public abstract void show2();
}

class Outer3 {
    void method() {
        new Inter3() {
            public void show1() {
                System.out.println("只能调用一个");
            }

            public void show2() {
                System.out.println("只能调用一个2");
            }
        }.show1();  // 同上
        //只能调用一个怎么办?
/*
        class Inner implements Inter3 {
            public void show1() {
            }

            public void show2() {
            }
        }
        Inter3 in = new Inner();
        in.show1();
        in.show2();
*/
        Inter3 in = new Inter3() {        // Inter3 in = new Inner();多态. Inner相当于子类(匿名)同上
            public void show1() {
                System.out.println("匿名内部类被调用show1()");
            }

            public void show2() {
                System.out.println("匿名内部类被调用show2()");
            }
        };
        in.show1();
        in.show2();
    }
}

class AnonymousInnerClasses {
    public static void main(String[] args) {
        new Outer3().method();
        System.out.println("--------------------------------");
        show(new InnerImpl2());//传入接口实现类
        show(new Inter3() {              // 不超过三个。不能太多  //同上
            public void show1() {
                System.out.println("匿名内部类实现接口show1()");
            }

            public void show2() {
                System.out.println("匿名内部类实现接口show2()");
            }
        });
    }

    static void show(Inter3 in) {
        in.show1();
        // in.show2();
    }
}

/*
通常的使用场景之一:
当函数参数是接口类型时,而且接口中的方法不超过三个。
可以用匿名内部类作为实际参数进行传递
*/
class InnerImpl2 implements Inter3 {
    public void show1() {
        System.out.println("实现接口show1()");
    }

    public void show2() {
        System.out.println("实现接口show2()");
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值