是重载还是重载?

  • 本文关键字:重载 java
  • 更新时间 :
  • 英文 :

public class overload1 {
    public Object show()
    {
        return "0";
    }
}
class overload2 extends overload1{
    public String show(){
        return "1";
    }
}

覆盖。您正在扩展类,并重写超类方法。

重载看起来像这样:

public class overload1 {
    public Object show()
    {
        return "0";
    }
    public Object show(Object arg)  // Same method name, but different arguments.
    {
        return "0";
    }
}

最简单的测试方法是输入@Override:

class overload2 extends overload1{
    @Override
    public String show(){
        return "1";
    }
}

所以这是一个有效的覆盖(考虑Java> 1.5)

方法重载意味着两个或多个方法具有相同的名称但不同的签名(即:不同输入参数类型,不同返回类型)

方法重写意味着在继承的类中具有相同方法的不同实现。这两个方法将具有相同的签名,但实现不同。

所以,在你的例子中,重载2类的show()重写了重载1类的show()

你正在做的是重写。重载是指两个方法具有相同的名称但不同的参数。

希望有帮助

方法重载是指在同一类中使用不同的参数编写相同的方法名,重写是指在超类和子类中编写相同的方法。

在你的例子中,你在超类和子类中编写相同的方法,所以它是方法重写。

这是一个重写,因为您只是重新定义了已经在父类重载1中定义的方法show()。重载处理在同一类中具有相同方法名称但具有不同参数的多个方法。

这是一种重写类型,因为重载参数必须更改

这是一个覆盖。参考Tom Jeffery对超载的回答。

我想你可能会问"你可以通过改变返回类型来重载吗?"你不能那样做。为了重载,需要更改方法签名(参数类型列表)。您可以在同一个类或子类中执行此操作。

重写意味着超类中的方法无法再访问。换句话说,在overload2的实例上调用.show(),可以直接得到overload1.show()吗?

最新更新