java - 您可以从一个单独的类调用父类(super class)中的方法,该类将所述父类(super class)的子类作为对象吗?

标签 java inheritance abstract-class

这个子类重写了原来的方法,而 super 类是一个抽象类。是否可以通过初始化为其子类的对象来调用父类(super class)中的原始方法?

public class SubClass extends SuperClass {
    public void methodA() {
        System.out.println("SubClass: methodA");
    }

    public void methodB(int num) {
        System.out.println("SubClass: methodB " + ++num);
    }
}

public abstract class SuperClass {
    public void methodA() {
        System.out.println("SuperClass: methodA");
    }

    public void methodB(int num) {
        System.out.println("SuperClass: methodB " + num);
    }
}

我想做什么:

{
  public static void main(String args[]){
    SuperClass sup= new SuperClass();
    sup.methodA();
}

我认识到上面的代码无法工作,因为抽象类无法实例化,所以我尝试这样做:

{public static void main(String args[]){
    SuperClass sup= new SubClass();
    sup.methodA(); //Trying to call method in original superclass
}

最佳答案

您始终可以创建扩展 Super 的匿名类或不会重写 methodA() 的子类。 以下是前一种方法的示例:

    SuperClass sup= new SuperClass(){};
    sup.methodA();

关于java - 您可以从一个单独的类调用父类(super class)中的方法,该类将所述父类(super class)的子类作为对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48027354/

相关文章:

java - 使用递归删除链表中所有出现的元素

java - 在 Java 继承中隐藏字段

c++ - ';' token 之前的预期类型说明符

java - 子类需要访问抽象父类(super class)的私有(private)属性

java - Java中的集合可以容纳不同的子类吗?

java - 使用 java 和 mySQL 的泰米尔语 utf-8 编码

java - 四叉树与 HashMap

javascript - Django 运行从父级导入并由子级调用的 javascript 函数

c++ - 不能在 C++ 中为 parking 场 OOP 声明抽象类型的变量

java - 15 :1: error: expected unqualified-id before 'for'