在Java中,extends
关键字用于实现类与类之间的继承关系。但是,extends
关键字只能继承父类的公有和保护属性,而不能继承私有属性。
私有属性是类内部定义的,只能被该类的方法和构造函数访问。子类无法直接访问父类的私有属性,因此,即使使用extends
关键字,子类也无法继承父类的私有属性。
以下是一个简单的示例,说明了这一点:
class Parent {
private int privateVar;
public Parent(int privateVar) {
this.privateVar = privateVar;
}
public int getPrivateVar() {
return privateVar;
}
}
class Child extends Parent {
public Child(int privateVar) {
super(privateVar);
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child(10);
// 无法直接访问父类的私有属性
// System.out.println(child.privateVar); // 这行代码会导致编译错误
}
}
在上面的示例中,Parent
类有一个私有属性privateVar
,Child
类继承了Parent
类。但是,在Child
类中,我们无法直接访问privateVar
属性,只能通过Parent
类提供的公有方法getPrivateVar()
来获取其值。