Java 中子类如何实现对父类私有域的继承
Java 中子类如何实现对父类私有域的继承
父类中的公有方法和域(属性),在类继承中将会被子类继承,但是私有的将不能被继承。那么在继承中子类如何才能继承到父类的私有域呢?
答案是:在子类的构造方法中通过super()方法调用父类的构造方法。
也就是,在构造子类的同时,为子类构造出跟父类相同的域。如此就在子类的对象中,也拥有了父类声明的域了。
并且我们也应该这样做。
演示代码如下:
Person.java
view plaincopy to clipboardprint?- 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
评论暂时关闭