美文网首页
抽象类调用自己的抽象方法,实现来自子类

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

作者: yesyourhighness | 来源:发表于2018-11-19 18:03 被阅读0次

先看一段代码

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();
    }

}

执行结果
"张三来啦"
www.jianshu.com

分析:
记住:抽象方法是不能调用的
原因就是抽象方法没有方法体。

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

相关文章

  • scala 调用java通过父类调用子类方法实现

    scala 调用java通过父类调用子类方法实现 java 父类 A 抽象类: java 子类 B 继承A类,并...

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

    先看一段代码 执行结果"张三来啦"www.jianshu.com 分析:记住:抽象方法是不能调用的原因就是抽象方法...

  • Android 抽象类、抽象方法、接口以及Kotlin中的抽象类

    **一、Android 抽象类、抽象方法** 抽象方法:类的成员方法,只有声明,没有实现,把实现交给子类。 抽象类...

  • 抽象类

    拓展抽象类的两个方式 实现抽象类的部分抽象方法或不实现全部抽象方法,则这个拓展的子类也必须是抽象类; 实现抽象类的...

  • 设计模式学习笔记:模板模式-Template Pattern

    在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。 它的子类可以根据需要重写方法实现,但调用的方式与抽象类...

  • Selector 类解析

    1.构造方法和类方法 这是一个抽象类,所有的方法都是抽象方法留给子类实现 2 mac 下面调用 KQueueSel...

  • 模板方法模式

    模板方法模式:在一个抽象类中公开定义了执行方法的模板,子类按需重写子方法实现,但是调用将以抽象类定义的方式进行。i...

  • java抽象类与接口

    抽象类:包含至少一个抽象方法的类就是抽象类。不能被实例化。抽象类可以有自己的方法。子类继承它必须实现其中的所有抽象...

  • 抽象类和接口

    抽象类中可以有非抽象方法 当一个子类要继承抽象类时,如果子类还想当抽象类就不一定要实现所有的抽象方法、如果子类不愿...

  • 模板模式

    什么是模板模式? 一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的...

网友评论

      本文标题:抽象类调用自己的抽象方法,实现来自子类

      本文链接:https://www.haomeiwen.com/subject/hevafqtx.html