Java抽象类的匿名子类

抽象类的匿名子类

涉及到匿名的东西,都是只用一次,目的就是为了省事!(有时候不一定用,但是为了看得懂代码,这个还是要有所了解的)

1.非匿名类的匿名对象
2.非匿名类的非匿名对象
3.匿名子类的非匿名对象
4.匿名子类的匿名对象

匿名说到底就分为以上四种情况,下面将从程序中弄清楚这四种情况的用法:
package com.java.oop5;

/**
 * @description: 抽象类的匿名子类
 * 涉及到匿名的东西,都是只用一次,目的就是为了省事!
 * 1.非匿名类的匿名对象
 * 2.非匿名类的非匿名对象
 * 3.匿名子类的非匿名对象
 * 4.匿名子类的匿名对象
 * @author: Fish_Vast
 * @Date: 2021/8/11
 * @version: 1.0
 */
public class PersonTest {
    public static void main(String[] args) {
        show1(new Worker());    //1.非匿名类Worker的匿名对象
        System.out.println("******************");
        Worker w = new Worker();
        show1(w);               //2.非匿名类的非匿名对象w
        System.out.println("******************");
        Person p = new Person() {   //3.匿名子类的非匿名对象p
            @Override
            public void run() {
                System.out.println("跑步跑步");
            }

            @Override
            public void breath() {
                System.out.println("呼吸呼吸");
            }
        };  //注意这里是要加分号的!!!
        /*因为在抽象方法中不能进行对象的实例化,不能造对象,但是我们假设暂时不知道子类的名字是什么,
        *所以借助子类重写方法来实现方法的调用。
        */
        show1(p);
        System.out.println("******************");
        //这里是干脆就连对象名也省去,得从上至下慢慢梳理一遍就能懂其思想了。
        show1(new Person(){ //4.匿名子类的匿名对象(最省事!!!)
            @Override
            public void run() {
                System.out.println("跑步");
            }
            @Override
            public void breath() {
                System.out.println("呼吸");
            }
        });
    }

    public static void show1(Person p){
        p.breath();
        p.run();
    }
}

class Worker extends Person{
    @Override
    public void run() {
        System.out.println("好好运动");
    }

    @Override
    public void breath() {
        System.out.println("多呼吸新鲜空气");
    }
}
package com.java.oop5;

/**
 * @description:
 * @author: Fish_Vast
 * @Date: 2021/8/11
 * @version: 1.0
 */
public abstract class Person {
    public Person() {

    }
    public abstract void run();
    public abstract void breath();
}

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fish_Vast

您的打赏是对我最大的支持!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值