私有成员能被子类继承吗?

您所在的位置:网站首页 java私有成员能被继承吗 私有成员能被子类继承吗?

私有成员能被子类继承吗?

2024-07-13 10:34:23| 来源: 网络整理| 查看: 265

如果你的答案是斩钉截铁的"不能",那么请你继续向下看,说不定这篇文章能对你有所用处. 首先请看两个类的代码: BaseClass:

package  com.sitinspring; import  java.util.Vector; /**  * 基类BaseClass,ChildClass类的父类  *  @author : sitinspring([email protected])  * @date: 2007-12-4   */ public   class  BaseClass{      //  私有动态数组成员,注意它是"private"的      private  Vector objects;           /**      * 在构造函数      *       */      public  BaseClass(){         objects = new  Vector();     }           /**      * 公有函数,向动态数组成员objects添加字符串      *  @param  str       */     @SuppressWarnings( " unchecked " )      public   void  addStr2Obs(String str){         objects.add(str);     }           /**      * 公有函数,打印objects中的诸元素      *       */      public   void  printAll(){          for ( int  i = 0 ;i      public   void  printObjects(){          //  下面的句子是不能编译通过的          /* for(int i=0;i         ChildClass childClass = new  ChildClass();                  childClass.addStr2Obs( " Hello " );         childClass.addStr2Obs( " World " );         childClass.addStr2Obs( " China " );         childClass.addStr2Obs( " sitinspring " );                  childClass.printAll();     } }

再让我们把断点停在main函数中的childClass.printAll()上,看看实例childClass中到底有什么. 以上截图证明:objects确实是ChildClass类实例childClass的成员,而且四个字符串也都被加进去了. 最后执行出来,结果如下:

序号 = 0     元素 = Hello 序号 = 1     元素 = World 序号 = 2     元素 = China 序号 = 3     元素 = sitinspring 这也说明,上面红字部分的论断是正确的. 再翻看书籍,关于private限制的成员变量是这样写的: private  只允许来自改类内部的方法访问.不允许任何来自该类外部的访问. 我们上面添字符串和遍历输出函数都是BaseClass的成员,所以它当然被这两个函数访问.而ChildClass的printObjects是BaseClass类外部的函数,结果当然是编译也不能通过. 实际上,private,public,protected和继承没有关系,他们对成员函数和变量的限制只是在成员的可见性上, public允许来自任何类的访问; private只允许来自改类内部的方法访问,不允许任何来自该类外部的访问; protected允许来自同一包中的任何类以及改类的任何地方的任何子类的方法访问. 而关于成员变量的继承, 父类的任何成员变量都是会被子类继承下去的 ,私有的objects就是明证,这些继承下来的私有成员虽对子类来说不可见,但子类仍然可以用父类的函数操作他们. 这 样的设计有何意义呢?我们可以用这个方法将我们的成员保护得更好,让子类的设计者也只能通过父类指定的方法修改父类的私有成员,这样将能把类保护得更好, 这对一个完整的继承体系是尤为可贵的. jdk源码就有这样的例子,java.util.Observable就是这样设计的. 本文例子下载: http://www.blogjava.net/Files/sitinspring/PrivatePuzzle20071204210542.rar  

本文转自http://www.blogjava.net/sitinspring/archive/2007/12/04/165288.html



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭