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。拜托,谢谢你。
答案 0 :(得分: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
答案 1 :(得分:1)
我们假设班级A
继承自班级B
。要让A
中的方法覆盖B
方法之一,只需创建一个具有相同签名的方法即可。也就是说,创建一个具有相同返回类型和相同数量和类型的参数的方法。
这实际上是一件很常见的事情。例如,所有类都应覆盖boolean equals(Object o)
类中的String toString()
和Object
方法(所有类都继承自该类)。
答案 2 :(得分:0)
看起来你确实做到了......只需将代码放在super(capacity)
下面,