【问题标题】:How to Implement Parent Class Method From Child Class Methods [closed]如何从子类方法实现父类方法
【发布时间】:2016-11-17 22:23:52
【问题描述】:

在父类中我们有一个抽象方法:

public abstract void parentMethod();

在子类中,方法定义如下:

public void parentMethod()
 {
  System.out.println("this is child class 1")
 }

public void parentMethod()
 {
 System.out.println("this is child class 2")
 }

分别。

如何完成父类的实现?

【问题讨论】:

  • 我对你的理解是否正确,你想从父类调用子方法吗?
  • 你的问题很不清楚。假设您有Parent p = new Child1(); p.parentMethod();,这将调用 Child1 的方法,从而打印“这是子类 1”。这就是多态性的原理。请发布所有相关代码,并准确说明您想要实现的目标。
  • @JBNizet 没有相关代码,我自己想出了这个例子
  • 是的,但此示例不完整。没有类,你永远不会实例化任何东西,也不会调用任何方法。我们不知道您的意思,以及您想要实现的目标。
  • @JBNizet 我定义的方法在类中。假设父类称为parent,子类是child1child2,其中extendsparent 类。

标签: java inheritance parent-child abstract


【解决方案1】:

您不能从父类调用子方法。考虑颠倒层次结构(使父类改为子类)或使方法成为处理类对象的外部处理程序的一部分。你能提供一个示例代码然后我可以进一步建议你吗?

编辑:

在这里,我假设您的意思是要使用父容器调用子方法。这样做看起来好像你有一个父对象,但它会调用子方法。

abstract class Parent 
{
     abstract public void parentMethod();
}

class ChildClass extends Parent
{
    @Override
    public void parentMethod()
    {
        System.out.println("Child method");
    }
 }

如果我理解正确的话,你只需 Parent child = new ChildClass();child.parentMethod();

【讨论】:

  • 我的错误,请参阅我的编辑。
  • Parent child = new ChildClass();child.parentMethod(); 在子类中?
  • @Rosifr 你调用 child.parentMethod() 来执行代码或类的方法。最有可能是静态 void Main 方法或类之外的任何地方
  • 应该是Parent child = new child(); 而不是Parent child = new childClass();
  • @Rosifr 这应该是您所说的子类,在我的示例中,我将子类称为childClass,但如果您将子类称为child,那将是正确的,只是不要t 将变量命名为与类相同,因为它可能会给您一个错误。
【解决方案2】:

如果您想为孩子们的方法使用不同的 impl,您的 ood 就不行了。

您的父类应该是一个接口,定义了要在子级上实现的方法。

然后您应该通过 this 访问子项中的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2012-02-22
    • 1970-01-01
    相关资源
    最近更新 更多