注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

众里寻他千百度,名师成就满分路

AP 微积分 AP 计算机 腾飞的博客

 
 
 

日志

 
 
关于我

大学讲师,中国首批AP计算机教师,著有中国第一套,历经五年实践证明深受学生欢迎的成功的AP计算机双语教材,2013年以93%的满分率开创了中国AP计算机成功的先河,远远超出全美26.6%的满分率,为中国AP计算机教学树立了典范,并在同年加拿大计算机竞赛中勇夺桂冠,任教学生获哥伦比亚大学,麻省理工学院,卡耐基梅隆大学,宾夕法尼亚大学,康奈尔大学,西北大学等学校录取,远程学生遍及北京、长春、南京、重庆、广州、济南, 深圳、成都、费城,洛杉矶,加州,宾州,新罕布什尔州等地,希望借此平台为信息技术的发展做出贡献!

网易考拉推荐

Java-关于子类是否继承了父类的private实例变量(转载http://blog.csdn.net/xinglongbing/article/details/2911568)  

2015-03-30 11:54:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  对面向对象程序设计语言中,对象模型是实现诸如封装、继承、多态的重要基础。在常见的面向对象语言:C++和Java等中,子类是继承了父类的所有实例字段的:也就是一个子类对象中包含了一个完整的父类对象。在C++中通过对子类对象进行sizeof运算求出其大小便可以很容易验证是否继承了父类中的private实例变量。但是Java中没有sizeof运算,今天突然想到一种方法也可以说明:子类对象中包含了父类private实例字段的。那就是通过错误提示信息。

class Base

{

    private int i = 0;

}

 

class Son extends Base

{

    public static void main(String[] args)

    {

        Son s = new Son( );

        System.out.println(s.i);

    }

}

会产生错误提示信息:Son.java:21: i 可以在 Base 中访问 private。

当我们注释掉 extends Base 以后Son没有继承自Base,此时编译出错信息为:

Son.java:21: 找不到符号

符号: 变量 i

位置: 类 Son

也就说明了若Son中没有包含实例变量i,则编译器应该会报错找不到符号。

Java虚拟机的连接模型中:通常有一个解析的过程:对某个类的字节码文件中所引用的其他类的实例变量或数据成员有一个解析的过程:其中就包括了对实例成员变量是否在类定义中存在的验证(包括对其父类和父类的父类等等),对成员变量是否具有访问权限等。通过错误提示信息可以看出:子类对象继承了父类的private实例变量。

  评论这张
 
阅读(241)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017