黑马程序员技术交流社区
标题:
为什么继承中,子类可以访问父类的私有变量?
[打印本页]
作者:
黑马张平
时间:
2012-3-14 10:51
标题:
为什么继承中,子类可以访问父类的私有变量?
为什么继承中,子类可以访问父类的私有变量?
作者:
赵孟恩
时间:
2012-3-14 10:59
不可以访问的 既然是父类私有的 就应该用 private 那样子类是不可以访问的
给你看下子类访问父类的关系
修饰符 类内部 同一个包 子类 任何地方
private yes
default yes yes
protected yes yes yes
public yes yes yes yes
作者:
张希强
时间:
2012-3-14 11:04
当然不能,私有的只能在本类中才可以访问 。
1) private
类中限定为private的成员,只能被这个类本身访问。
如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。
2) default
类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。
3) protected
类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。
4) public
类中限定为public的成员,可以被所有的类访问。
你所说的能够访问是因为子类调用了父类的public的方法在父类中访问的父类私有的属性。
作者:
薛波
时间:
2012-3-14 11:06
你的问题说的不是很清楚,你指的访问也没有说个例子,
一般情况子类不能直接访问到父类的私有属性的,除非父类中提供公有的 get 方法访问该私有属性。
要么就是内部类可以访问到父类的私有属性。
再者就是反射当中也是可以的。
作者:
潘许超
时间:
2012-3-14 11:18
继承的特点;子类父类出现后类中成员的特点;加载的时候先加载父类,然后加载子类此时子类有两个引用this和super
类中成员this代表本类对象的引用,super代表父类对象的引用
super关键字
1变量:如果子类和父类中出现了非私有的同名成员变量时
子类要访问本类中的变量用this
子类要访问父类中的同名变量用super
super的私有方法和this的私有几乎一致
this代表的事本类对象的引用
super代表的事父类对象的引用
子类是继承了父类,所以继承父类的东西
在这个子类对象中this和super指向的同一个对象,就是子类
作者:
OMG
时间:
2012-3-14 11:41
private 本类中的对象可以访问;
protected 本类和子类可以访问,与包无关;
default 本包内的所以类的对象都可以访问;
public 所有类的对象都可以访问。
这是有己及子,由内而外,逐步开放的对应修饰符。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2