您的位置:首页 > 其它

继承到底是什么,为什么private static的方法不能被重写

2015-10-13 19:22 393 查看
一个例子,      别人提出来的 。。。。。。

我听说静态方法和private方法不能被覆盖,但是我试了一下以下代码,都能通过:public class A{

static void m(){

...........}

}

class B extends A{

void m(){

...........}

}



public class A{

private void m(){

..........}

}

class B extends A{

void m(){

..........}

}

更多0
提问者       根本不懂继承的真正含义
继承看的不是包含什么,而是能用什么。private定义的方法在继承时根本就没有被继承,而是被隐藏了,重写是基于继承过来的方法的(也就是可用的方法),都被隐藏了,说明方法不可用,你重写谁去呀,static方法一样,他是不会被继承的(虽然没被继承,但是子类还包含没被继承的部分,可以通过super调用,static通过类名调用),就跟构造方法不会被继承一样。                           向这里写的m方法(B类中)并不是重写了一个m方法,只是写了一个可用的的,m方法,仅此而已,被覆盖的依然被覆盖。
     希望对你们有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: