Java面向对象--匿名内部类的详解

匿名内部类

匿名内部类可以使代码更加简洁,可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类,这样方便又简洁。

  • 匿名内部类的特点就是不用再构造一个类,对比一下:
//定义一个动物类
class Animals{
    public void eat(){
        System.out.println("动物要吃东西");
    }
}

//实现类
public class Demo {
    public static void main(String[] args) {
        //正常调用
        Dog dog = new Dog();
        dog.eat();

        //利用匿名内部类
        new Animals(){
            //重写
            public void eat(){
                System.out.println("狗要吃肉");
            }
        }.eat();
        
    }
}

//正常的继承狗类重写一下
class Dog extends Animals{
    @Override
    public void eat() {
        System.out.println("狗要吃肉");
    }
}
  • 当要用匿名内部类调用多个方法时:
//定义一个人类
class People{
    public void eat(){
        System.out.println("人要吃东西");
    }
    public void run(){
        System.out.println("人要跑");
    }
}

public class Demo1 {
    public static void main(String[] args) {
        //利用匿名内部类调用多种方法!!!
        People p = new People(){
            public void eat(){
                System.out.println("男人要吃肉");
            }
            public void run(){
                System.out.println("男人要跑");
            }
        };
        p.eat();
        p.run();
        //不同的地方就是实例化一个People类给p
    }
}
  • 虽然要实例化一个People类给p,但是比构建一个men类要简洁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值