抽象类调用自己的抽象方法,实现来自子类

本文详细分析了Java中抽象类和抽象方法的概念,指出抽象方法无法直接调用的原因,并通过示例解释了如何在子类中重写并调用抽象方法。在实际使用中,抽象类通常作为父类被继承,其抽象方法必须在子类中实现,确保实例化时使用的是带有具体实现的子类方法。

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

public abstract class Parent {

    public abstract void dosomething();

    public void say(){
        dosomething();
        System.out.println("www.jianshu.com");
    }

}
public class Children extends Parent{

    @Override
    public void dosomething() {
        System.out.println("张三来啦");
    }

    public static void main(String[] args){
        Children c = new Children();
        c.say();
    }

}

执行结果
“张三来啦”

分析:

记住:抽象方法是不能调用的,原因就是抽象方法没有方法体。但是,在一个类中定义了一个抽象方法,在这个类 或 这个类的子类 中是可以调用的。为什么可以调用呢?因为,具有抽象方法的类,一定是一个抽象类,而抽象类在被继承的时候,必须重写这个抽象类的抽象方法,而且,抽象类不能实例化,在使用这个抽象类的时候,使用的一定是这个抽象类的子类。故,你在 抽象类 或 抽象类的子类 中可以使用这个抽象方法,是因为当真正实例化去使用的时候,使用的是子类重写后的实例方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值