参考:https://www.liaoxuefeng.com/wiki/1252599548343744/1260455778791232
1. 什么是多态
在继承关系中,子类如果定义了一个与父类方法完全相同的方法(参数类型、返回值、函数名完全相同),被称为覆写(Override),通常在子类中方法中添加@Override,让编译器帮助检查是否进行了正确的覆写,如果覆写不正确,则编译报错。
java实例在运行时具体调用的是哪个方法,是基于运行时的实际类型的来动态调用的,而非变量的声明类型。这个特性在面向对象编程中称之为多态。它的英文拼写非常复杂:Polymorphic。
3. final关键字
如果一个父类不允许子类对它的某个方法进行覆写,可以把该方法标记为final,用final修饰的方法不能被Override。如果一个类不希望任何其他类继承自它,那么可以把这个类本身标记为final。用final修饰的类不能被继承。对于一个类的实例字段,同样可以用final修饰。用final修饰的字段在初始化后不能被修改