-6
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。谢谢,麻烦您了。

4

3 回答 3

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

于 2013-09-03T16:39:20.613 回答
1

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

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

于 2013-09-03T16:40:11.783 回答
0

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

于 2013-09-03T16:39:35.913 回答