使用Java @Override注释的最佳实践是什么?为什么?
使用@Override注释标记每个重写方法似乎有点过分.是否有某些编程情况需要使用@Override和其他不应该使用的@Override?
是否应该使用实现接口方法的方法进行注释@Override?
指示方法声明旨在覆盖超类中的方法声明.如果使用此批注类型注释方法但不覆盖超类方法,则编译器需要生成错误消息.
我不认为接口在技术上是超类.或者是吗?
@Override除了让编译器检查超类是否具有该方法之外,是否有任何理由使用其他方法来注释方法?
在下面的java代码中创建了一个JButton,但同时它的一个方法被覆盖.问题:创建对象时是否有以这种方式覆盖的名称?
代码:
JButton myButton;
myButton = new JButton ("ok"){
@Override
public void setText(String text) {
super.setText(text +", delete");
}
Run Code Online (Sandbox Code Playgroud)
jbutton的标签现在是"ok,delete"
public class Animal {
public void eat() { System.out.println("I eat like a generic Animal."); }
}
public class Wolf extends Animal {
@Override
public void eat() { System.out.println("I eat like a wolf!"); }
}
Run Code Online (Sandbox Code Playgroud)
是否@Override确实有一些功能,或者它只是有点对此有何评论?
可能重复:
java中有什么"@Override"?
到目前为止,我从来没有在方法之前放置"@Override".我看到了一些代码示例,但我不明白它的实用性.我喜欢一些解释.
非常感谢,
JDelage
我正在创建一个类似于Banko applet的Java应用程序.当我点击"public void init()"方法时,我的表现很好.当我完成时,除了那之外所有编译.它告诉我添加@Override注释.我试过了,但每当我这样做,无论我把它放在哪里,编译器都会失败并出现以下错误:
找不到标志
符号:类覆盖
location:class aBomb.Bomb
我不知道是什么阻止了应用程序正常执行.:| 如果您在下面写的代码中找到了您认为应该更改的内容,请告诉我.我是Java的新手:(代码:
public void init() {
BorderLayout border = new BorderLayout();
setLayout(border);
JPanel top = new JPanel();
JLabel moneyLabel = new JLabel("Money : $");
moneyField = new JTextField("", 8);
moneyField.setEditable(false);
JLabel foundLabel = new JLabel("Found: ");
foundField = new JTextField("", 8);
foundField.setEditable(false);
restart = new JButton("Restart");
restart.addActionListener(this);
top.add(moneyLabel);
top.add(moneyField);
top.add(foundLabel);
top.add(foundField);
top.add(restart);
add(top, BorderLayout.NORTH);
board = new Board(this, ROW_COUNT, COLUMN_COUNT, BOMB_COUNT);
add(board, BorderLayout.CENTER);
setup();
setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)