關於修飾符混用錯誤的是?

2022-08-27 00:30:17 字數 612 閱讀 8885

a  不能共存,因為abstract就是要被繼承的,而被final修飾的類不可能被繼承,所以不可共存

final 修飾的類/方法/屬性均不可再次更改,故而不可以被重寫

b  private修飾的類只可以定義在內部類;private 修飾的方法/屬性只可以在類中呼叫,重寫時是訪問不到這些方法和屬性的,所以不建議有

c  正確

d  不可以,靜態方法只能訪問靜態成員。非靜態既可以訪問靜態,又可以訪問非靜態。

static修飾的方法可以直接用類名呼叫。靜態變數可以被物件呼叫,還可以被類名呼叫。

非static修飾的方法只能被物件呼叫,必須用類new出物件才能呼叫當我們用類名直接呼叫時,可能這個類的物件並沒有new。如果這時候static方法裡呼叫非static的方法就會出現空指標異常,當然這種錯誤編譯時就不會通過

補充:abstract和static,static 靜態的,其修飾的方法/屬性,是隨著類的建立而建立,類的消亡而消亡,在編譯時就已經確定的東西;但是abstract是dynamic(動態)的,其必須通過類繼承或介面實現來動態重寫abstract方法。

關於volatile修飾符

volatile是乙個型別修飾符 type specifier 它是被設計用來修飾被不同執行緒訪問和修改的變數。如果沒有volatile,基本上會導致這樣的結果 要麼無法編寫多執行緒程式,要麼使編譯器失去大量優化的機會。乙個定義為volatile的變數是說 這變數可能會被意想不到地改變 這種意外不是...

beforefieldinit修飾符是幹嘛用的

假設我們有乙個類a帶有beforefieldinit修飾符 beforefieldinit修飾符是編譯器在編譯完之後,自動加上的,只能通過反編譯工具看 總的來說,加上beforefieldinit修飾符就意味著 類a會在變數可能被引用的前一刻,提前完成初始化。從理論上,加上beforefieldin...

關於常量修飾符 const

關於常量修飾符 const 一直對const的理解就是簡單的常量修飾符,定義乙個不可改變的變數 注意這裡是變數,也就是說const叫常量修飾符,但實際上它定義的是乙個變數,只不過由編譯器限定未不可修改 後來聽了老師的課發現const有許多有意思的用法 1 const int i 10 i的值不可改變...