如何覆盖父类的方法?

时间:2013-09-03 16:37:11

标签: java inheritance

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。拜托,谢谢你。

3 个答案:

答案 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)下面,