java 变量(属性)的覆盖

java 变量(属性)的覆盖

ID:18934350

大小:48.00 KB

页数:8页

时间:2018-09-22

java 变量(属性)的覆盖_第1页
java 变量(属性)的覆盖_第2页
java 变量(属性)的覆盖_第3页
java 变量(属性)的覆盖_第4页
java 变量(属性)的覆盖_第5页
资源描述:

《java 变量(属性)的覆盖》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA面试题解惑系列(三)——变量(属性)的覆盖  我们来看看这么一道题:Java代码classParentClass{publicinti=10;}  publicclassSubClassextendsParentClass{publicinti=30;  publicstaticvoidmain(String[]args){     ParentClassparentClass=newSubClass();     SubClasssubClass=newSubClass();     System.out.pr

2、intln(parentClass.i+subClass.i);//自加System.out.println(parentClass.i);//10System.out.println(subClass.i);//30}}  控制台的输出结果是多少呢?20?40?还是60?变量,或者叫做类的属性,在继承的情况下,如果父类和子类存在同名的变量会出现什么情况呢?这就是这道题要考查的知识点——变量(属性)的覆盖。这个问题虽然简单,但是情况却比较复杂。因为我们不仅要考虑变量、静态变量和常量三种情况,还要考虑private、fri

3、endly(即不加访问修饰符)、protected和public四种访问权限下对属性的不同影响。我们先从普通变量说起。依照我们的惯例,先来看一段代码:Java代码classParentClass{privateStringprivateField="父类变量--private";  /*friendly*/StringfriendlyField="父类变量--friendly";  protectedStringprotectedField="父类变量--protected";  publicStringpublicFi

4、eld="父类变量--public";  //private的变量无法直接访问,因此我们给他增加了一个访问方法publicStringgetPrivateFieldValue(){     returnprivateField;}}  publicclassSubClassextendsParentClass{privateStringprivateField="子类变量--private";  /*friendly*/StringfriendlyField="子类变量--friendly";  protectedStr

5、ingprotectedField="子类变量--protected";  publicStringpublicField="子类变量--public";  //private的变量无法直接访问,因此我们给他增加了一个访问方法publicStringgetPrivateFieldValue(){     returnprivateField;}  publicstaticvoidmain(String[]args){     //为了便于查阅,我们统一按照private、friendly、protected、public

6、的顺序     //输出下列三种情况中变量的值       //ParentClass类型,ParentClass对象     ParentClassparentClass=newParentClass();     System.out.println("ParentClassparentClass=newParentClass();");     System.out.println(parentClass.getPrivateFieldValue());//父类变量--private     System.out.

7、println(parentClass.friendlyField);//父类变量--friendly     System.out.println(parentClass.protectedField);//父类变量--protected     System.out.println(parentClass.publicField);//父类变量--public       System.out.println();       //ParentClass类型,SubClass对象(子转父)     ParentCla

8、sssubClass=newSubClass();     System.out.println("ParentClasssubClass=newSubClass();");     System.out.println(subClass.getPrivateFieldValue());//调用了子类的方法(方法覆盖

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

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

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