问题1: 系统默认只会调用super();
问题2: 私有变量出了那个类都不可以访问;

解决方案 »

  1.   

    问题一:不写,就会直接调用自身的,就像楼上说的。 
    问题二:我认为应该不等于,因为他是用了super(name,age);这个直接赋值给了父类,本身没有,而且由于父类的属性是私有的,所以子类student就不能继承,并且不能访问,要访问的话,可以在父类里写上public的get()方法。
      

  2.   

    首先,子类的构造方法执行时会向上传递先执行父类的构造方法,如果不显式调用super()或者super(args...),则只会自动调用无参数的super.第二个问题,私有属性和方法都不可以继承,对于属性一般私有化再用公有方法得到。
      

  3.   

    生成子类对象时,默认先调用父类不带参数的构造方法,接下来再去调用子类的构造方法,所以第一个问题处那个super应该写,用以显式的调用父类的特定所需的构造方法。第二个问题,父类的私有属性子类是无法继承的,但有一点我必须说明,new student("lucy",11)似乎是实例化student对象,整么扯到person上了?而且对象的引用也没有,也没有写它们的get方法。
      

  4.   

    问题1:子类构造函数默认调用父类的无参构造,也就是super();所以必须写。
    问题2:不能够说是Person还是Student的,好歹还是给那个对象一个名吧,私有属性只有本类可以访问,所以肯定不能直接访问啦,你是调用父类的构造赋值的,又不是直接访问,当然可以咯。
      

  5.   

    问题1:你自己子类的构造器,里面可以随便写,不一定非要写个super调用父类构造器,你可以打印一句话,你可以this.name = name;this.age=age;给自己的属性复制。
      

  6.   

    问题2,一般访问别的类的属性,要用方法,不要去直接调用,例如你可以这样写,String name = person.getName();这里返回的就是Person类的属性值。
      

  7.   

    问题2补充,还有你在你的构造器里是这样写的,super(name,age);就等于调用了父类的构造器,你并没有给你自己的子类的对象复制,所以,student.name=="lucy",student.age=11是错误的,它们并没有被赋值,name=null,age=0