HOWTO · Java
Java 中的私有方法
本教程演示了 Java 中私有方法的使用。
Java 中的私有方法有一个私有访问修饰符,这意味着它们对定义类的访问受到限制,并且在继承的子类中不可访问;这就是为什么他们没有资格覆盖。
但是,可以在子类中创建一个方法,并且可以在父类中访问该方法。本教程演示了如何在 Java 中创建和使用私有方法。
Java 中的私有方法
如上所述,私有方法只能在定义类中访问;对于私有方法,我们考虑以下几点。
- 私有方法是 Class X,只能在 Class X 中访问。
- 包 X 的包私有成员或方法只能在 X 包的所有类中访问。
让我们尝试在 Java 中创建和使用私有方法。参见示例:
package delftstack;
public class Private_Methods {
private void print() {
System.out.println("The Private Method can only be printed in the defining Class");
}
public static void main(String[] args) {
Private_Methods Demo = new Private_Methods();
Demo.print();
Private_Methods_Child Demo1 = new Private_Methods_Child();
Demo1.print();
}
}
class Private_Methods_Child extends Private_Methods {
public void print() {
System.out.println("The Public Method can be printed anywhere");
}
}
上面的代码创建了一个私有方法并在同一个类中调用它,同时也创建了一个公共方法在父类中调用它;输出将是:
The Private Method can only be printed in the defining Class
The Public Method can be printed anywhere
如果我们在子类中将 public 方法改为 private,就会抛出异常。参见示例:
package delftstack;
public class Private_Methods {
private void print() {
System.out.println("The Private Method can only be printed in the defining Class");
}
public static void main(String[] args) {
Private_Methods Demo = new Private_Methods();
Demo.print();
Private_Methods_Child Demo1 = new Private_Methods_Child();
Demo1.print();
}
}
class Private_Methods_Child extends Private_Methods {
private void print() {
System.out.println("The Public Method can be printed anywhere");
}
}
我们无法从子类访问 print 方法。见输出:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method print() from the type Private_Methods_Child is not visible
at delftstack.Private_Methods.main(Private_Methods.java:11)