java - 在 main() 方法中通过子对象调用重写的方法

标签 java inheritance

我有两个类 A 和 B。“A”由方法 map() 组成,该方法在类 B 中被重写。在主类中,我正在为类“B”创建一个对象。我想调用'A'类的map()。有什么办法可以实现这一点吗?

我尝试过使用 super 关键字,但没有成功。

class Parent { 
    void Print() { 
        System.out.println("parent class"); 
    } 
} 

class subclass1 extends Parent {
    @Override   
    void Print() 
    { 
        System.out.println("subclass1"); 
    } 
}
public class Example1 { 
    public static void main(String[] args) 
    { 
        Parent a;
        a = new subclass1(); 
        a.Print();
        super(a).Print();
    } 
}

最佳答案

不,这在 Java 中是不可能的。如果你想调用Parent的重写方法,你必须实例化Parent。除非您能够修改 Subclass1,否则您可以引入一个调用父方法的新方法。

public class Subclass1 extends Parent {
    public void printParent() {
        super.print();
    }
}

关于java - 在 main() 方法中通过子对象调用重写的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57728988/

相关文章:

javascript - Android Studio InputFilterMinMax 部分工作

java - 使用 taskan 的 java-skype api 在 Java 中发送 Skype 消息

java - ArrayList 从文件中读取行并分配它们

c# - 如何从 C# 中的封闭构造类中获取基类对象

C++ 用抽象类重载输入

java - 如何从 Firebase 数据库获取数据并将它们填充到 ListView 中

java - Telegram ,Java : upload file to send in sendAnimation

c++ - 模板化类的特殊继承导致成员函数返回模板化类类型而不是继承类类型

php - 有没有办法让 PHP 子类继承属性(静态和实例)?

c++ - 指针、类项和范围