关于继承的知识盲点
来源:互联网 发布:中国网络研究院 待遇 编辑:程序博客网 时间:2024/05/19 19:40
第一种情况:
public class B{private int var = 5;public int getVar() {return var;}public void setVar(int var) {this.var = var;}B(){}}
<pre name="code" class="java">public class Bson extends B{
<span style="white-space:pre"></span>private int var = 33;Bson(){System.out.println(getVar());}public static void main(String[] args) {new Bson();}}父类一个正常的bean结构,子类只设置了var字段没有对应的get方法,然而控制台的输出结果是5.
这说明,当父类和子类拥有相同名称的字段时(其实父类的是属性,子类是字段),调用父类对应的get方法,获得的是父类的成员变量而不是子类的。造成这种误解的原因是经常性不使用this,super关键字,久而久之忽略了其中的细节。
第二种情况:
public class B{private int var = 5;public int getVar() {return var;}public void setVar(int var) {this.var = var;}B(){}}
<pre name="code" class="java">public class Bson extends B{private int var = 33;public int getVar() {return var;}public void setVar(int var) {this.var = var;}Bson(){System.out.println(getVar());}public static void main(String[] args) {new Bson();}}输出结果是33,这很容易理解,子类调用了自己的get方法获得了自己的变量。
关于这种情况,类似的还有当内部类的父类和外部类有名称相同的方法时是先调用外部类的方法还是父类的,以前我看过相关的blog,写得很详细,结果百度了一阵子也没搜出来,以后有时间会继续整理,也欢迎大家补充下
0 0
- 关于继承的知识盲点
- 寻找知识区的盲点
- 知识盲点
- 关于IFrame的一个盲点
- C++面试时的知识盲点
- 关于继承的一些知识
- 知识盲点整理:
- JavaScript知识盲点
- php知识盲点
- C语言知识盲点
- c++知识盲点,自查
- top域名知识盲点
- Pig 知识盲点
- Hive 知识盲点
- 建模过程的盲点:软件集成中的软知识
- 笔记练习中的知识盲点
- hibernate随笔(知识盲点)
- 关于Java学习中继承知识方面的一些理解
- Verilog语法_6(altera PLL&&Ram&&Rom应用)
- centos7安装mplayer 遇到的问题和解决办法
- 欢迎使用CSDN-markdown编辑器
- spring+springmvc+ibatis整合注解方式实例。
- linux安装nginx
- 关于继承的知识盲点
- Linux卸载/删除多余网卡
- Java中request和response乱码问题解决
- Redis怎么分区
- ext.combox 中 定义事件监听函数获取组合框中编辑框的值
- Spring Security--Jsp标签
- struts中<s:form></form>标签的理解
- Android自定义View的实现方法,带你一步步深入了解View(四)
- android 6.0权限