android studio中 :..的含义,关于java:Android Studio中@override的含义

本问题已经有最佳答案,请猛点这里访问。

我是Android Studio的新手,我想知道Android Studio中@Override语句的用途。

@Override是一个Java注释。它告诉编译器以下方法覆盖其超类的方法。例如,假设您实现了Person类。

public class Person {

public final String firstName;

public final String lastName;

//some methods

@Override public boolean equals(Object other) {

...

}

}

person类有一个equals()方法。 equals方法已在Person的超类Object中定义。因此,equals()的上述实现是对Persons的equals()的重新定义。也就是说,Person覆盖equals()。

在没有明确注释方法的情况下覆盖方法是合法的。那么@Override注释有什么用呢?如果您不小心尝试以这种方式覆盖equals(),该怎么办?

public boolean equals(Person other) {

...

}

上面的案例有一个错误。你的意思是重写equals(),但你没有。为什么?因为真正的equals()获取一个Object作为参数,你的equals()获取一个Person作为参数。编译器不会告诉您有关该错误的信息,因为编译器不知道您想要覆盖。就编译器而言,你实际上意味着重载equals()。但是如果你试图使用@Override注释覆盖equals:

@Override public boolean equals(Person other) {

...

}

现在编译器知道你有错误。你想覆盖,但你没有。因此,使用@Override注释的原因是显式声明方法覆盖。

那么它将是一个全新的方法名称等于? 取决于我如何定义ir?

它是一个Java注释(不是特定于Android的)。您可以使用它来表示此方法覆盖方法。

使用它的原因是在创建要覆盖方法的方法时捕获错误,但是由于某些错误,它没有,例如,方法名称中的拼写错误,方法签名中的错误等等。例如,有时开发人员会这样:

class Foo {

public boolean equals(Foo other) {

...

作者希望这可以覆盖超类'equals方法,但它不会(参数类型应该是Object)。程序编译正常,但不会像作者那样使用Foo.equals。

class Foo {

@Override

public boolean equals(Foo other) {

...

编译现在会出错,因为该方法不会覆盖另一个方法。这提前指出了问题,并希望节省一些调试时间来追踪问题。

它是一个Java注释,告诉编译器该方法旨在覆盖超类中的方法。它不是绝对必要的,但确实有助于在编译时捕获错误。

@Override是java annotation。

Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.

另见

当-DO-您使用-Java类修调注解和为什么

例:

class Parent{

public void foo(){

}

}

class Child extends Parent{

//compile perfect !

@Override

public void foo(){

}

//will show compile time error message here as it is not being overridden

@Override

public void foo(int i){

}

}

它是Java中的注释。它标志着该方法旨在覆盖超类中的方法。

这是一个特殊的,编译器保留的Java注释,表示您正在覆盖超类方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值