2

我读过使用@Override注释有很多好处,并且一致认为您应该在每个被覆盖的方法上使用它。

@Override在构造函数中也使用注释是否被认为是一种好习惯?

4

3 回答 3

12

不。

构造函数不会被覆盖。

于 2013-08-21T14:17:16.287 回答
2

注释在构造函数的@Override上下文中没有意义。也许您将覆盖重载混淆了。这是一个重要的区别。您不会覆盖构造函数,但可以重载它们。

于 2013-08-21T14:28:46.677 回答
1

当具有相同名称、返回类型、数量和参数类型的子类被声明为超类的实例方法时,就会发生覆盖。在这种情况下,子类将覆盖超类的方法。

如果不指定默认构造函数,编译器将创建默认构造函数。然而,这不是压倒一切的。

扩展类时,基类可以链接到基类构造函数或创建自己的构造函数。

例如:

public class Base
{
    public Base(int i) {}

    public Base(String str) {}
}

public class Derived extends Base
{
    public Derived()
    {
        super(5);
    }
}

Derived d1 = new Derived(4); // Correct
Derived d1 = new Derived("4"); // Incorrect - constructor not implemented
于 2013-08-21T14:37:16.457 回答