java 中子类如何实现对父类私有域的继承

来源:互联网 发布:c语言的分类 编辑:程序博客网 时间:2024/05/17 09:24

 父类中的公有方法和域(属性),在类继承中将会被子类继承,但是私有的将不能被继承。

那么在继承中子类如何才能继承到父类的私有域呢?

答案是:在子类的构造方法中通过super()方法调用父类的构造方法。

也就是,在构造子类的同时,为子类构造出跟父类相同的域。如此就在子类的对象中,也拥有了父类声明的域了。

并且我们也应该这样做。

 

演示代码如下:

Person.java

public class Person{private String name;public Person(String name){this.name = name;}public void setName(String name){this.name = name;}public String getName(){return name;}}


Student.java

public class Student extends Person{public Student(String name){super(name);}}


TestStudent.java

public class TestStudent{public static void main(String[] args){Student mStudent = new Student("abc");String mName = mStudent.getName();System.out.println("Name is : " + mName);mStudent.setName("efg");mName = mStudent.getName();System.out.println("Name is : " + mName);}}

 

打印结果为:

Name is : abc

Name is efg