05-方法重写
方法重写
在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为覆写(Override)
加上@Override可以让编译器帮助检查是否进行了正确的覆写。
例如,在Person
类中,我们定义了run()
方法:
class Person {
public void run() {
System.out.println("Person.run");
}
}
在子类Student
中,覆写这个run()
方法:
class Student extends Person {
@Override
public void run() {
System.out.println("Student.run");
}
}
Override和Overload不同的是,如果方法签名如果不同,就是Overload,Overload方法是一个新方法;如果方法签名相同,并且返回值也相同,就是Override
总结:需要和父类方法一模一样,只是方法体不一样
final
继承可以允许子类覆写父类的方法。如果一个父类不允许子类对它的某个方法进行覆写,可以把该方法标记为final
。用final
修饰的方法不能被Override
对于一个类的实例字段,同样可以用final
修饰。用final
修饰的字段在初始化后不能被修改
可以在构造方法中初始化final
字段,这种方法更为常用,因为可以保证实例一旦创建,其final字段就不可修改。
class Person {
public final String name;
public Person(String name) {
this.name = name;
}
}
本文来自博客园,作者:神乐g,转载请注明原文链接:https://www.cnblogs.com/shenleg/p/14164249.html