【发布时间】:2017-12-29 19:16:56
【问题描述】:
这个 SubClass 已经覆盖了原来的方法并且 SuperClass 是一个抽象类。是否可以通过初始化为其子类的对象调用超类中的原始方法?
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
}
【问题讨论】:
-
你应该发布一个代码示例而不是试图用文字来描述它。
-
您没有包括您实际尝试做您询问的事情的部分。只是一个示例超/子类并没有做任何事情。
-
不,你不能那样做——这会使覆盖方法的概念失效。
-
我注意到你的问题仍然是“开放的”——因为你没有接受答案。请查看并决定是否要accept 回答。或者让我知道我是否可以做些什么来增强我的输入以使其被接受。接受有助于未来的读者确定问题是否已解决,并对花时间回答你的人表示感谢。谢谢!
标签: java inheritance abstract-class