黑马程序员技术交流社区

标题: 关于继承的小白问题 [打印本页]

作者: 叶若    时间: 2013-7-18 15:08
标题: 关于继承的小白问题
子类能获得父类的private属性吗,经我自已试验好像是不行,private属性对子类也是不可见的,不过不知是我眼贱还是脑子进水我总觉得好像不知在哪本书上看过子类也能获得父类的private属性,求个大神把这事说明白让我安心。
作者: 禾呈    时间: 2013-7-18 15:12
我也记得好像在哪里听过,子类可以获得父类的private属性,只不过对其子类隐藏了,同求解答
作者: 付龙    时间: 2013-7-18 15:14
只要将变量和方法前面加上private,就不能调用,很坚决!
作者: 王磊    时间: 2013-7-18 15:17
子类不能调用父类中的私有成员。这个是固定的。
至于楼主说不知在那里看过调用到私有成员,我想应该不是子类,而是该类的内部类去调用的。因为一个类的内部类是可以调用该类所处的外部类的私有成员。
作者: gb2312_8    时间: 2013-7-18 15:45
private,只有类内可直接访问,  protected,类内和子类可直接访问,  public,谁都能直接访问。 你看的是protected的吧
作者: 杨兴庭    时间: 2013-7-18 17:53
子类是不可以访问父类中的私有属性的,,,一种情况下例外。。那就是通过暴力反射获取一个类的私有属性。。。。
作者: Mr_Free    时间: 2013-7-18 18:04
私有属性虽然不能直接访问,不过父类中会有一个公有方法来改变这些属性,子类在继承父类之后可以通过调用父类中的公有方法来间接修改父类中的私有属性
  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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2