一、创建父类Parent
// 父类
class Parent {
private String privateField = "父类的私有属性";
private void privateMethod() {
System.out.println("父类的私有方法");
}
public void publicMethod() {
System.out.println("父类的公共方法");
// 在父类内部可以访问私有成员
System.out.println(privateField);
privateMethod();
}
}
二、创建子类Child
子类Child 继承父类Parent
// 子类
class Child extends Parent {
public void tryAccessPrivate() {
// 子类尝试访问父类的私有属性 → 编译错误
// System.out.println(privateField); // ❌ 错误: privateField 不可见
// 子类尝试调用父类的私有方法 → 编译错误
// privateMethod(); // ❌ 错误: privateMethod() 不可见
// 但可以正常访问父类的公共方法
publicMethod(); // ✅ 允许访问
}
}
编译错误:编辑区报红,无法通过编译
三、编写测试类Test
public class Test {
public static void main(String[] args) {
Child child = new Child();
child.tryAccessPrivate();
}
}
测试类运行结果如下
四、结论
1.子类可以使用父类中非私有的成员(私有成员private修饰)
2.子类不能直接调用父类中的私有成员(私有成员private修饰),子类可以通过调用父类的非私有方法间接访问父类中的私有成员