java - 重写父类(super class)中的方法

标签 java inheritance subclass superclass overriding

我在我的父类(super class)中设置了一个方法...

 public void explain() {

     for (Item item: Instances) {
         System.out.println(item.getname + " is in location " + item.place):
     }
 }

我需要在子类中重写相同的方法以打印出原始输出消息,但此方法的新实例需要打印出子类中设置的不同值

我对最重要的部分感到困惑(因为我对此知之甚少),并希望得到解释。

最佳答案

因此只需在基类参数中给出方法即可

public void explain(Instances i)

并在您的子类中调用它。您不需要重写任何内容,并且可以从基类中重用代码。或者,如果有一些更复杂的逻辑,您可以尝试 Template method pattern喜欢

基类

public abstract class Base {

    public abstract explain(Instances i);

    public void print(Item i) {
        //do something
    }
}

子类

public class Subclass extends Base {

    @Override 
    public void explain(Instance instances) {
         //do some logic and call print in loop
         print(someItemfromInstances);
    }
}

关于java - 重写父类(super class)中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548983/

相关文章:

html - Joomla 网站上的子类样式问题

delphi - 如何继承 TcxGridDBTableView 并使用它而不丢失我的 GUI 设置并将其安装为组件?

java - java中堆内存和字符串常量池有什么区别

java - Java 应用程序中的多个框架

java - 在java中转换美国距离测量和公制系统的程序

java - 最佳实践 : fail() vs assertTrue(false)

java - 抽象多态性和继承的类分配错误

c++ - 无法返回派生类型的 std::unique_ptr<>

c++ - 继承问题中的模板

子类化 UIView 时,Swift 过渡动画不起作用