java的枚舉類enum,定義靜態變量還可以有抽象方法,但枚舉類不能被繼承


借鑒https://blog.csdn.net/qq_31655965/article/details/55049192

在此解釋枚舉類不能被繼承的原因:它已經繼承過父類Enum類了,且它的父類實現了serializable接口,即所有enum類都實現了序列化

 而enum類也不可以被繼承,原因如下:

寫法是:public enum 枚舉類類名{變量列表用逗號隔開,最后一個變量后用分號結束; 可用函數列表  }

其實 枚舉類本身就是  public final class 枚舉類類名{變量列表的類型就是該類類型且也用到了final關鍵字};並且枚舉類自帶value(),valueof()函數和static{}靜態代碼塊的聲明/定義。

故變量列表中的變量可以寫成三種方式:1.變量名。//相當於用枚舉類類型定義一個靜態變量

                  2.變量名(變量名對應值)。//用枚舉類類型定義變量,但該枚舉類有提供有私有參構造方法和私有變量用作參數,參數的值就是變量名對應的值

                  3.變量名(變量名對應值){靜態代碼塊}//除2以外,該枚舉類還定義了抽象方法,變量名的后的代碼塊相當於是實現抽象方法的匿名內部類。寫法如同:變量類型 變量名 =new 枚舉類類名(參數){@Override

                        public 枚舉類類型 抽象類類名() {
                                return 變量名; }

                       }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM