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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© YUStone 中级黑马   /  2013-11-4 22:33  /  1019 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

protected能被本包及不同包的子类所访问怎么理解?与public有什么区别?前者的使用场合都有哪些?求解答!

3 个回复

倒序浏览
包的概念:比如String,全称是java.lang.String,是java包中的lang包中的一个类
假如String是protected的,那java.util包中的类,比如Array 就无法访问了,
而假如java.util包中有一个StringUtil继承了String类,则它可以获取String的继承数据
当然,只是打个比方,String类是final的,本身是无法被继承的。。。

使用场合的话,通常如果某个类的功能是基于当前包的特性而研发的,
比如一个包是专门用来计算距离的,其中一个类是用作 米,尺,公尺 这些单位的转换的,就可以写成protected,意思是其他包基本用不着,
如果真要用也是基于其他包的特性,这时候要对这个类做出改进才能使用它的特性,这个时候就可以用继承

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

回复 使用道具 举报
打个比方 public就是公共厕所,谁都可以用
protected就是机关厕所。本机关(包)的可以用。但是呢,他有个儿子没进机关,去外面混了,给了儿子特权,说你也可以来咱这上厕所
回复 使用道具 举报
public就是一个工程下的所有包里的类都能访问到.
protected就是可以被同一个包里的类访问,其他包里只有子类能访问到.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马