【发布时间】:2015-11-05 09:15:12
【问题描述】:
如果我有一个超类和子类如下
class Superclass {
public void someMethod() {
System.out.println("superclass called here");
}
}
和
class Subclass extends Superclass {
public void someMethod() {
System.out.println("subclass called here");
}
}
假设我有一个类是子类的对象,比如Subclass sc = new Subclass();。我知道我可以在子类的方法中使用super.someMethod(); 来调用超类的方法。但是有什么方法可以调用对象sc上的子类方法而不必经过同名的子类方法呢?
附言这个问题来自于 UCB 的 Java 数据结构课程的一个小作业。 第四部分,第三题。 CS 61B Lab 5
【问题讨论】:
-
你的问题不清楚。
without having to go through the subclass method of the same name- 这是什么意思? -
我认为没有人想到过有效的用例,通常会设计一个类层次结构,其中方法被明确设计为被覆盖。
-
如果您发现自己经常调用
super.方法,您可能应该停下来重新考虑您的设计。 -
@Rehman 很抱歉造成混乱。这是 UCB 的 Data Structure in Java course's assignment 中的一个小问题,第四部分,问题 3。link 在我的理解中,这意味着不直接在子类的方法定义中调用 'super.someMethod()'。
标签: java object-oriented-analysis