java之中的静态变量与静态方法的继承与覆盖问题.doc

java之中的静态变量与静态方法的继承与覆盖问题.doc

ID:57688533

大小:12.00 KB

页数:2页

时间:2020-09-01

java之中的静态变量与静态方法的继承与覆盖问题.doc_第1页
java之中的静态变量与静态方法的继承与覆盖问题.doc_第2页
资源描述:

《java之中的静态变量与静态方法的继承与覆盖问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、java之中的静态变量与静态方法的继承与覆盖问题/*classAA{publicstaticvoida(){System.out.println("a");}}classBextendsAA{//staticvoidbb(){//   a();//}}classTest{publicstaticvoidmain(String[]args){B.a();//输出a,证明静态方法可以被继承}}*///在子类中并没有必要通过再造一个方法,在这个方法中调用父类中的方法。//子类默认的继承了父类的所有方法。也就是说,通过子类类名(对于静态//方法来说)或对象名来直接调用父类的方法。//不

2、能被覆写,例子:classA{protectedstaticintnum=2;publicstaticvoida(){System.out.println("a");}}classBextendsA{protectedstaticintnum=4;publicstaticvoida(){System.out.println("b");}}publicclassTest1{publicstaticvoidmain(String[]args){Aa=newB();a.a();//输出结果是a,说明静态方法不能再子类之中被覆盖。System.out.println(a.num);//

3、输出2,说明静态变量是不能被在子类中被覆盖的。System.out.println(A.num);System.out.println(B.num);//通过类名调用被覆盖的静态变量可以显示子类的被覆盖的静态变量。}}//java不推荐用对象调用static方法,这会使人混淆,请大家注意。但编译的时候,静态变量的值已经确定,//而对于多态中的编译问题,对于一个静态变量java只会看父类之中是不是有这个变量。也就是说多态对于//静态变量和静态方法是没有作用的。//java的这个规定是可以理解的。静态的说明只有一个固定的地址,一旦确定之后,就不能更改。而java中//的多态是指当子

4、类中的方法或变量覆盖了父类中的时,编译的时候,java首先不会确定他们的具体内容,//当具体执行时看其属于什么子类在确定最后的执行。这样的话两者正好相互矛盾。因此,静态的问题并不//存在多态问题,因为它是一成不变的。//将变量定义为public可见性还是protected可见性,都可以通过类名或者对象名来直接调用它,而不需要//通过特定的方法get###();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。