匿名内部类

一、基于abstract的匿名内部类

不是声明的时候没有类名,而是实例化的时候可以不写变量的名字

abstract class AbstractTestType {
    abstract public void test();
}

class TestA extends AbstractTestType {

    @Override
    public void test() {
        System.out.println("一个类继承了AbstractTestType,调用了此方法");
    }
}
public class Demo5 {
    public static void main(String[] args) {
        //格式一:基本格式
        TestA att = new TestA();
        att.test();

        //格式二:匿名内部类对象调用方法
        AbstractTestType att = new AbstractTestType() {
            @Override
            public void test() {
                System.out.println("匿名内部类对象调用该方法!!!");
            }
        };
        att.test();

        //格式三:匿名内部类的匿名对象调用方法
        new AbstractTestType() {

            @Override
            public void test() {
                System.out.println("匿名内部类的匿名对象调用了这个方法");
            }
        }.test();

        //格式四:匿名内部类匿名对象直接操作方法的参数
        test1(new AbstractTestType() {
            @Override
            public void test() {
                System.out.println("匿名内部类匿名对象直接操作方法的参数");
            }
        });
    }
        public static void test1(AbstractTestType t) {
        t.test();
    }
}

二、基于接口的匿名内部类

interface A {
    public void testInterface();
}

public class Demo6 {
    public static void main(String[] args) {
    
        //格式一:匿名内部类的对象调用方法
        A a = new A() {

            @Override
            public void testInterface() {
                System.out.println("匿名内部类的对象调用该方法");
            }
        };
        a.testInterface();

        //匿名内部类的匿名对象调用方法
        new A() {
            @Override
            public void testInterface() {
                System.out.println("匿名内部类的匿名对象调用该方法");
            }
        }.testInterface();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值