Java 中的私有方法

Sheeraz Gul 2022年5月1日
Java 中的私有方法

Java 中的私有方法有一個私有訪問修飾符,這意味著它們對定義類的訪問受到限制,並且在繼承的子類中不可訪問;這就是為什麼他們沒有資格覆蓋。

但是,可以在子類中建立一個方法,並且可以在父類中訪問該方法。本教程演示瞭如何在 Java 中建立和使用私有方法。

Java 中的私有方法

如上所述,私有方法只能在定義類中訪問;對於私有方法,我們考慮以下幾點。

  1. 私有方法是 Class X,只能在 Class X 中訪問。
  2. 包 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)
Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - Java Method