如何从父抽象类调用childs类方法

其他455:

嗨,大家好,我是Java的新手,仍然在学习OOP原理。直接问这个问题。因此,我有一个抽象类和两个从其继承的类。看起来像这样:

public abstract class A { ... }
public class B extends A { 
    ...
    void methodB() { ... }

public class C extends A {
    ...
    void methodC() { ... }

现在我做:

A a = null;
if (that)
    a = new B();
else
    a = new C();

一点上,我想做一个a.methodB();a.methodC(); 两个(当然不是两个都做,因为我创建了一个孩子), 但是我什么都不做。

Lajos Arpad:

这是您可以做到的:

if (a instanceof B) ((B)a).methodB();
else if (a instanceof C) ((C)a).methodC();

但这是一种反模式,我建议在中将定义methodA为一种abstract方法A abstract classBC实现两者,然后您可以轻松调用,然后将调用a.methodA()的正确实现methodA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章