gpt4 book ai didi

java - Android Studio 中@override 的含义

转载 作者:IT老高 更新时间:2023-10-28 20:34:08 26 4
gpt4 key购买 nike

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

最佳答案

@Override 是 Java annotation .它告诉编译器下面的方法overridessuperclass的一种方法.例如,假设您实现了一个 Person 类。

public class Person {
public final String firstName;
public final String lastName;

//some methods

@Override public boolean equals(Object other) {
...
}
}

person 类有一个 equals() 方法。 equals 方法已经在 Person 的父类(super class) Object 中定义。 .因此,上面的 equals() 实现是对 Persons 的 equals() 的重新定义。也就是说,Person 覆盖了 equals()。

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

public boolean equals(Person other) {
...
}

上述案例有一个错误。你打算覆盖 equals() 但你没有。为什么?因为真正的 equals() 将 Object 作为参数,而您的 equals() 将 Person 作为参数。编译器不会告诉你这个错误,因为编译器不知道你想要覆盖。据编译器所知,您实际上的意思是 overload等于()。但是,如果您尝试使用 @Override 注释覆盖等于:

@Override public boolean equals(Person other) {
...
}

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

关于java - Android Studio 中@override 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com