xuemeng 发表于 2013-5-18 14:44
如果笔试, 你说子类可以继承父类私有属性, 肯定不通过, 但是面试就可以说能够继承,因为你可以给面试官解 ...
你好,我去搜了下,有的说可以,有的说不行。说可以的也说的是这种情况。但是我添加了一行代码打印出Student的name,它就报错,显示必须到Person类里面去访问。
所以我想,即便是真的执行隐式继承,也不可以高调的去显示执行(比如我说的打印不出)。这是我的想法,你认为呢?
class Person
{
private String name;
private int age;
//已经完成了给name和age赋值的功能
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
}
class Student extends Person
{
private String sn;//学号
public Student(String name,int age,String sn)
{
super(name,age);//调用父类的构造方法,必须放在第一行,否则错误SuperDemo2.java:24: 错误: 对super的调用必须是构造器中的第一个语句
this.sn = sn;
}
}
class SuperDemo21
{
public static void main(String[] args)
{
//想创建Student对象的时候,就给name和age赋值
Student p = new Student("Will",17,"007");
System.out.println(p.name);//只是新加了这一行代码,想打出Student的name
}
}
报错:SuperDemo21.java:29: 错误: name可以在Person中访问private! |