JavaSE碎碎念:抽象类继承被子类继承之后方法调用关系

简介: JavaSE碎碎念:抽象类继承被子类继承之后方法调用关系


public class TestAbstract {
    public static void main(String[] args) throws Exception {
        Son son = new Son();
        Object aaa = son.action("aaa");
        System.out.println(aaa.toString());
    }
}
abstract class Father{
    public Object action(Object object) throws Exception {
        object = actionBP(object);
        System.out.println("oo father");
        return object;
    }
    abstract protected Object actionBP(Object object) throws Exception;
}
class Son extends Father{
    @Override
    protected Object actionBP(Object object) throws Exception {
        return "shit";
    }
}

抽象父类,实现子类,测试类。

测试类中创建子类对象,使用子类对象可以执行调用抽象类中的非抽象方法(这样的方法是提取共性,省的子类一个一个的去重写,冗余),抽象类中的非抽象方法还可以调用父类中的抽象方法,当然真正执行的一定是拿着子类的对象去调用从父类中继承的方法,方法执行之后,调用的父类中的抽象方法也会变成调用的是子类中的重写的方法。

public class TestAbstract {
    public static void main(String[] args) throws Exception {
        Son son = new Son();
        Object aaa = son.action("aaa");
        System.out.println(aaa.toString());
    }
}
abstract class Father{
    public Object action(Object object) throws Exception {
        object = actionBP(object);
        System.out.println("oo father");
        return object;
    }
    abstract protected Object actionBP(Object object) throws Exception;
}
class Son extends Father{
    @Override
    public Object action(Object object) throws Exception {
        super.action(object);
        object = actionBP(object);
        System.out.println("oo yeah");
        return object;
    }
    @Override
    protected Object actionBP(Object object) throws Exception {
        return "shit";
    }
}

这种情况下,子类把父类的非抽象方法都给重写了,这样就没啥疑问了,调用的都是子类中的方法,只不过子类方法通过super.action()从新调用了一下父类的方法。

相关文章
|
6天前
|
Java 编译器
【JAVA面向对象编程】--- 探索子类如何继承父类
【JAVA面向对象编程】--- 探索子类如何继承父类
20 0
|
8月前
|
Java
Java面向对象之继承
Java面向对象之继承
38 0
|
9月前
|
Java
【JavaSE】继承和多态重点语法知识汇总
【JavaSE】继承和多态重点语法知识汇总
【JavaSE】继承和多态重点语法知识汇总
|
9月前
|
Java
Java面向对象继承
继承的概念 继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的复用和扩展。继承是面向对象编程的三大特征之一,其他两个分别是封装和多态。 继承的作用 1.提高代码的复用性:通过继承,子类可以直接使用父类的属性和方法,不需要重复定义。 2.便于代码的扩展:通过在子类中添加新的属性和方法,实现了代码的扩展。 3.提高代码的可维护性:将公共的属性和方法放在父类中,可以减少重复的代码,从而方便代码维护和升级。
60 0
|
9月前
|
安全 Java 编译器
《JavaSE-第九章》之继承与多态
《JavaSE-第九章》之继承与多态
|
9月前
|
Java 程序员
JavaSE/封装、继承、多态
JavaSE/封装、继承、多态
|
10月前
|
Java
【Java面向对象】继承的认识与实现(1)
【Java面向对象】继承的认识与实现(1)
67 0
|
Java
Java面向对象—继承
Java面向对象—继承
58 0
|
Java
Java面向对象 继承
Java面向对象 继承
65 0
|
Java
Java面向对象三剑客之——继承
今天向大家介绍Java中最重要的概念之一——继承。Java是一种面向对象的编程语言,继承是实现面向对象编程的基础之一。通过继承,我们可以使代码更具可读性、可重用性和可维护性,从而提高程序的效率和可靠性。让我们一起探索java继承的奥秘吧!
47 0