k88*_*074 3 java abstract-class subclass extend
我有一个抽象的课
public abstract class SuperclassA{
public abstract void method(SuperclassB b);
}
Run Code Online (Sandbox Code Playgroud)
并实施
public class SubclassA extends SuperclassA{
@override
public void method(SubclassB b){
}
}
Run Code Online (Sandbox Code Playgroud)
哪里SubclassB extends SuperclassB
.
我的NetBeans编辑器抱怨说我没有压倒一切method
.我能做些什么来实际传递一个子类method
?
为了覆盖基类的方法,子类的方法必须具有相同的签名.
如果您希望重写的方法只接受实例SubclassB
,您可以测试它:
public class SubclassA extends SuperclassA
{
@Override
public void method(SuperclassB b){
if (!(b instanceof SubclassB)) {
// throw some exception
}
SubclassB sb = (SubclassB) b;
...
}
}
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式调用该方法:
SuperclassA a = new SubclassA ();
a.method (new SubclassB ());
Run Code Online (Sandbox Code Playgroud)