抽象方法能不能同時是static / native / synchronized的

  1. 不能是static的,抽象方法需要子類重寫,但是static方法不能被子類重寫
    1. 所謂靜態就是指:在編譯之後所分配的內存會一直存在(不會被回收),直到程序退出內存纔會釋放這個空間
    2. 因爲靜態方法從程序開始運行後就已經分配了內存,也就是說已經寫死了。所有引用到該方法的對象(父類的對象也好子類的對象也好)所指向的都是同一塊內存中的數據,也就是該靜態方法。子類中如果定義了相同名稱的靜態方法,並不會重寫,而應該是在內存中又分配了一塊給子類的靜態方法,沒有重寫這一說
  2. 不能是native的,本地方法是由本地代碼(如c代碼)實現的方法,抽象方法是沒有實現的
  3. 不能是synchronized的,synchronized和方法具體實現細節相關,抽象方法沒有方法的實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章