一,继承的限制:
1,)一个子类不能有多个父类,但可以多层继承。也就是说,父类也可以有父类。
2)子类不能访问父类中的私有成员。但是可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。
比如,以下是错误的调用父类中的私有成员
class Person{ // 定义Person类 private String name ; // 定义name属性 private int age ; // 定义age属性 public void setName(String name){ this.name = name; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public int getAge(){ return this.age ; } }; class Student extends Person{ // 定义Student类 public void fun(){ System.out.println("父类中的name属性:" + name) ; // 错误,无法访问 System.out.println("父类中的age属性:" + age) ; // 错误,无法访问 } };
但是可以通过调用父类中的非私有方法,间接调用私有成员变量
class Person{ // 定义Person类 private String name ; // 定义name属性 private int age ; // 定义age属性 public void setName(String name){ this.name = name; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public int getAge(){ return this.age ; } }; class Student extends Person{ // 定义Student类 public void fun(){ System.out.println("父类中的name属性:" + getName()) ; // 正确,间接访问 System.out.println("父类中的age属性:" + getAge()) ; // 正确,间接访问 } };