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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄昆 中级黑马   /  2012-6-10 20:05  /  11984 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天翻看Api发现有的类的构造函数被protect了,为什么要把构造函数给protect??这样有什么用呢??

4 个回复

倒序浏览
protected 修饰的成员在 当前类、当前包、其他包的子类,中能访问。作为构造函数的作用 是用来创建对象。楼主结合着作用和范围理解下,也就是这样的了。
回复 使用道具 举报
构造函数是protected,那么该类可以继承,可以在被包内其他类中产生实例,但是无法在包外或者子类以外的地方产生实例.
回复 使用道具 举报
使用了protected,客户程序(不在同一包内)就不能随便创建该类的一个实例了.但是由于是protected,使得该类可以被继承.
如果构造函数是私有的,那么该类无法被继承(因为子类构造时要调用超类的构造函数,而private使得子类无法调用),无法从外界获得一个对象.但是可以 在类的内部产生一个实例的,例如singleton就是使用private的构造函数,然后在内部维护一个实例,而提供一个static的 getInstance方法来获取这个实例
如果构造函数是protected,那么该类可以继承,可以在被包内其他类中产生实例,但是无法在包外或者子类以外的地方产生实例.

评分

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

查看全部评分

回复 使用道具 举报
假如人类是凭证才能存在。
如果你有个省证,说明你只能在所在省生存。
如果你有个中国证,说明你只能在中国存在,你不能去国外,当然你也可以在所在省活动。
如果你有个世界证,那你就可以去其它国家了。
protected相当于这个证件。你只能在同一包里面创建实例。看下:

public         全部都可以访问
默认          类内部和同一个包或同一个目录能访问
protected  类内部,同一个包同一个目录和子类能访问                              
private      只有类内部能访问

点评

大哥!高!  发表于 2012-6-10 21:31

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 酷毙了~~

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马