【发布时间】:2016-02-01 21:03:58
【问题描述】:
class SuperClass () {
doSuperStuff();
}
class SubClass extends SuperClass () {
doStuff();
}
SuperClass aClass = new SubClass();
为了调用 doStuff() 方法,我需要像 (SubClass)aClass.doStuff(); 一样转换它吗?
- 通常是这样做的吗?
- 有没有更好的办法?
- 我是否应该“总是”以这种方式初始化 SubClass,以防我想放一堆 将 SuperClass 的子类放入数组或类似的东西中?
更新: 看完大家的回复:
好的。在我的理解中,我肯定遗漏了一些东西。我认为让子类继承超类的所有内容,然后在子类中再创建一个方法是可以的。那我应该做一个界面吗?
另外,我有 SuperClass class = new SubClass();,但将其重命名为 SuperClass aClass = new SubClass();
【问题讨论】:
-
如果你需要调用静态类型为
SuperClass的东西的SubClass方法,那么你的设计出了问题。 -
如果要调用子类中的方法,为什么要引用它作为超类,SubClass class= new SubClass(),然后是class.doStuff()
-
@svasa 你不能调用变量
class这是一个保留字 -
我只是引用上面发布的代码中的行。
-
@tazboy 我实际上赞成你的问题,因为我认为这是一个有效的问题。
标签: java subclass superclass