【问题标题】:How do I override a parent class's method? [closed]如何覆盖父类的方法? [关闭]
【发布时间】:2013-09-06 23:41:02
【问题描述】:
import java.io*;
import java.awt.*;
import java.util.concurrent.*;

public class StudentQueue<E> extends ArrayBlockingQueue<E>
{
    public StudentQueue(int capacity)
    {
        super(capacity);
    }
}

如何覆盖相应父类的方法?我需要覆盖 java 库 ArrayBlockingQueue 中的方法。如何实现自己的方法并让它覆盖父类中的方法?

任何例子都可以,不一定是ArrayBlockingQueue。请,谢谢。

【问题讨论】:

  • 文档涵盖了类/方法覆盖,你为什么不从那里开始?
  • 您没有说明您已经尝试过什么。 Java 的每篇介绍性文本都会说明如何覆盖方法。请指出一个具体问题
  • 这不是 StackOverflow 的工作方式。你必须展示你迄今为止所做的努力,你编写的代码,并就你遇到的具体问题提出问题——你不能问人们为你编写代码
  • 顺便说一句,当您之前的问题被关闭时,这表明它有问题。在这种情况下,正确的做法是从你的错误中吸取教训,找出你的帖子有什么问题,然后编辑它以提名它重新打开。删除您的问题并立即重新提出是不合适的,这就是为什么这个问题已经被投票 -5 并且可能会再次关闭。

标签: java inheritance


【解决方案1】:

如果您的方法与父方法的名称、参数和返回类型相同,则您将覆盖它。 您也可以在方法顶部添加 @Override 注释。

总是检查父母的方法不是最终的也不是私有的。

例如

public class Parent{
  public void method(String param){
    //Do stuff
  }

  private void notExtendable(String param){

  }

  protected void alsoExtendable(String param){

  }
}

public class SubClass extends Parent{
  @Override
  public void method(String param){
    //super.method() //if you want to execute parent's method
    //Do your own stuff
  }
}

这里有你需要的所有信息:http://docs.oracle.com/javase/tutorial/java/IandI/override.html

【讨论】:

    【解决方案2】:

    看起来您确实是这样做的...只需将您的代码放在super(capacity)下方,

    【讨论】:

      【解决方案3】:

      假设类A 继承自类B。要让A 中的方法覆盖B 的方法之一,只需创建一个具有相同签名的方法。也就是说,制作一个返回类型相同,参数数量和类型相同的方法。

      这实际上是一件很常见的事情。例如,所有类都应覆盖 Object 类(所有类都继承自)中的 boolean equals(Object o)String toString() 方法。

      【讨论】:

        猜你喜欢
        • 2018-07-07
        • 2011-04-17
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        • 2014-05-23
        • 2013-11-11
        相关资源
        最近更新 更多