idea 错误提示
@Override 重写方法的目的是为了多态, 重写是实现多态的前提, 即重写是发生于继承且针对非static方法
语法上子类允许出现和父类只有方法体不一样的static方法, 但语法上static支持重写, 但是运行上达不到多态
a的编译类型为 父类A, 运行类型为 子类B, a调用static方法时, 是依据编译类型, 没有多态
当定义方法为static final时
When a static method is overriden in a subclass it can still be accessed via the superclass making the final declaration not very necessary. Declaring a static method final does prevent subclasses from defining a static method with the same signature.
将一个static方法声明为final是不必要的, 声明为final可以阻止子类定义相同签名的static方法
static方法属于类, static方法无this隐式参数, 可以使用类名直接调用static方法
方法被声明为static:
static方法不能被Override,但是可以被子类相同signature的方法hide,子类的static方法不是Override,而是hide, 如果在子类中直接调用该static方法,会调用子类重新定义的,而不是父类的,而父类定义为 static final
final会阻止隐藏, 故子类重新定义static方法会报错