A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心?=忐§忑] 中级黑马   /  2014-3-23 08:06  /  1159 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在父类中使用了private访问权限,而在子类中使用了default访问权限,这叫覆写吗?为什么?

8 个回复

倒序浏览
不叫 被private修饰的所有变量和函数都只在本类中有效
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数).
私有化的数据只在本类中有效。
将成员变量私有化以后。类以外技术建立了对象也不能直接访问。
   需要注意的是:私有仅仅只是封装的一种表现形式。
之所以队伍提供访问方式。就以为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作。提高代码健壮性。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
覆盖:
1,子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
2,静态只能覆盖静态。
private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。
                而抽象方法出现的就是需要被复写。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
不能覆写,private:私有,权限修饰符。用于修饰类中的成员(成员变量和成员函数),当父类中的成员被private修饰后,就隐藏了其内容,不能被覆写!如果要调用,必须建立set和get方法,对其内容进行访问。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
不能覆写,父类中被private修饰的成员变量和成员方法都不能被子类继承,所以也就不存在覆写的问题了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
当然不是了。覆盖也叫覆写,实际上他不是针对被声明为private的方法的,因为父类中的private方法根本在其子类和其他类中看不到,所以也就不存在覆写一说了。defalut,public,默认方法才能被覆写,但是子类覆写方法的权限要大于等于父类方法的权限。比如public方法只能被子类public方法覆写,却不能被默认或者defalut方法覆写。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
H-Deka 中级黑马 2014-3-23 16:41:36
7#
不能覆盖,因为父类中的private方法子类无法访问,更不能去覆盖
回复 使用道具 举报
这不叫复写   在父类中用private 修饰的函数跟本就没有提供给子类使用  子类也是访问不到的 所以不是复写
回复 使用道具 举报
private 修饰后子类根本看不到,何谈复写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马