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

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

作者: 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

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

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

    相关文章

      网友评论

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

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