匿名内部类的使用

本文介绍Java中匿名内部类的应用场景及其实现方式。通过具体示例展示了如何利用匿名内部类扩展基类,并解决类的单继承限制问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基类

package sky.java.innerclass1.nimingneibulei;

public class Parent {

    private int age;

    public Parent(int age) {
        this.age = age;
    }
    public int value() {
        return age;
    }
}

业务调用类

package sky.java.innerclass1.nimingneibulei;

public class Other {

    public Parent parent(int x) {
        /**
         * 此为匿名内部类 , 对其基类进行了扩展 , 并返回
         */
        return new Parent(x) {
            @Override
            public int value() {
                return super.value()*40;
            }
        };
    }

    public static void main(String[] args) {
        Other other = new Other();
        Parent parent = other.parent(4);
        System.out.println(parent.value());
    }
}

总结 :
1. 内部类的作用 : 简单的一次性的扩展某类或接口 , 多用于一次性无关联性的场景
2. 内部类可以解决类只能单继承的问题 , 如下

基类

package sky.java.innerclass1.nimingneibulei2;

public class ParentA {
}

package sky.java.innerclass1.nimingneibulei2;

public class ParentB {
}

子类

package sky.java.innerclass1.nimingneibulei2;

public class Child extends ParentA {
    /**
     * 通过内部类 , 实现可以获取与使用ParentB类功能的功能
     */
    ParentB b() {
        return new ParentB(){

        };
    }
}

调用类

package sky.java.innerclass1.nimingneibulei2;

public class Other {

    void a(ParentA parentA) {

    }
    void b(ParentB parentB) {
    }

    public static void main(String[] args) {
        Other other = new Other();
        Child child = new Child();
        other.a(child);
        // 以此方式 , 来解决类只能单继承的问题
        other.b(child.b());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值