为什么 父类如果有 proctected 的方法 假如 为 proctected void fo(){}子类 如果 覆盖fo()的子类的fo为什么不能是
public static void fo()
{
}
也就是 为什么不能用static方法覆盖 proctected 的方法说明原因/../.........谢谢
public static void fo()
{
}
也就是 为什么不能用static方法覆盖 proctected 的方法说明原因/../.........谢谢
instance.staticMethod()
instance.nonStaticMethod()
都是可以的那你instance.fo()的时候就没办法分辨call的是static的那个还是非static的那个了
也就是说是 一种java语言规范?????????
fo.proctect()直接调用而不创建对象为什么不行呢??这样规范好诡异 啊!!
试想,原先proctected void fo(){}是为了让你继承使用
你当然可以覆盖他,但是原来他是要你用new来调用了,现在变成可以直接调用了
如果你这个子类再有子类,那么静态方法是不能被覆盖的,这样你的子类的子类和最初的父类就脱节了。
如果是这样的话,那么无疑又增加了继承的复杂性
你父类的代码访问权限是 protected的,子类重写后是public的,这样肯定没问题但是要注意,子类重写父类的方法,子类方法的访问权限 >= 父类的方法的访问权限