[英]Why does Thread class has static methods when we have currentThread() method?
[英]Why does the compiler not give error when we have public methods inside default class
當我們在默認類中包含公共方法時,為什么JAVA編譯器不給出錯誤?
當我們有非公共類時(假設具有默認訪問級別),並且如果我們在該類中有如下公共方法,
class Main {
public void doStuff() {
}
}
那么我們將無法從同一包的外部訪問上述doStuff()方法。 但是為上述方法減速使用公共訪問修飾符是合法的。 那么它的目的是什么?
允許public
訪問具有包可見性的類的成員沒有害處:以這種方式定義它並不矛盾,因此編譯器允許這樣做。
但是,您肯定是正確的: public
包可見的類的成員不會擴大其可見性:如果擁有的類具有包可見性,那么使其所有公共成員也都可以包可見也不會改變任何事情。
因為它不是錯誤,並且可能有必要避免錯誤:例如,如果它是接口方法的實現。
同一包中的某人可以實例化Main,並將其作為對象或接口傳遞給另一個類。 在前一種情況下,必須像toString()和equals()這樣的方法是公共的,在后一種情況下,該Interface的方法必須是公共的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.