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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶若 初级黑马   /  2013-7-18 15:08  /  1188 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类能获得父类的private属性吗,经我自已试验好像是不行,private属性对子类也是不可见的,不过不知是我眼贱还是脑子进水我总觉得好像不知在哪本书上看过子类也能获得父类的private属性,求个大神把这事说明白让我安心。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

7 个回复

倒序浏览
我也记得好像在哪里听过,子类可以获得父类的private属性,只不过对其子类隐藏了,同求解答
回复 使用道具 举报
只要将变量和方法前面加上private,就不能调用,很坚决!
回复 使用道具 举报
子类不能调用父类中的私有成员。这个是固定的。
至于楼主说不知在那里看过调用到私有成员,我想应该不是子类,而是该类的内部类去调用的。因为一个类的内部类是可以调用该类所处的外部类的私有成员。
回复 使用道具 举报
private,只有类内可直接访问,  protected,类内和子类可直接访问,  public,谁都能直接访问。 你看的是protected的吧

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
子类是不可以访问父类中的私有属性的,,,一种情况下例外。。那就是通过暴力反射获取一个类的私有属性。。。。
回复 使用道具 举报
私有属性虽然不能直接访问,不过父类中会有一个公有方法来改变这些属性,子类在继承父类之后可以通过调用父类中的公有方法来间接修改父类中的私有属性
  1. public class Test8 {
  2.         public static void main(String[] args){
  3.         fu erzi =new zi();
  4.         erzi.setValue(2);
  5.         System.out.println(erzi.getValue());
  6.         }
  7. }

  8. class fu {
  9.         private int value=5;
  10.         private void method(){
  11.                 System.out.println("xxxxxxxxx");
  12.         }
  13.         public void setValue(int value){
  14.                 this.value=value;
  15.         }
  16.         public int getValue(){
  17.                 return this.value;
  18.         }
  19. }

  20. class zi extends fu
  21. {
  22. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马