日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

枚举类能继承吗?能被继承吗?

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 枚举类能继承吗?能被继承吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

枚舉的作用:限定“數據集”中的元素的個數(將類理解為一個集合)、即限定枚舉類對象的個數。

如果一個類的實例是有限且確定的,那么可以使用枚舉類。比如:季節類,只有春夏秋冬四個實例。

枚舉類與普通類的區別:

1.枚舉類也是類,也可以有自己的成員變量,成員方法,靜態方法、靜態變量等,也能實現其他的接口,不能繼承其他類了(因為已經繼承了java.lang.Enum)。枚舉類的對象默認都是public static final?

2.枚舉類與普通類的不同在于,它的構造器私有,這也決定了它如果需要被繼承時的特殊性。若果其它的外部類A繼承它,由于在構造類A的對象時,需要調用父類的構造方法,由于枚舉類的構造器私有,所有無法調用,導致枚舉類不可以被其它的外部類繼承。但是有沒有辦法去繼承它?答案是有的,那就需要用到內部類了(內部類能訪問外部類的任何成員,當然能訪問已被私有的構造器了)。

?

例子:簡單模擬下交通燈*********************************************

public?enum?TrafficLamp?{

//由于枚舉值默認式public,final,static,按照規范變量名全部大寫

//正是由于枚舉值的這一特性,為我們實現單列提供了一種很好的方案

//注意此時的枚舉值都是引用,相當于public?static?final?TrafficLamp?RED?=?new??//TrafficLamp();

RED{//匿名內部類,RED指向繼承了TrafficLamp的子類對象,以下同理

public?TrafficLamp?state(){

try?{

Thread.sleep(30000);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

return?GREEN;

}

},GREEN{

public?TrafficLamp?state(){

try?{

Thread.sleep(60000);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

return?YELLOW;

}

},YELLOW{

public?TrafficLamp?state(){

try?{

Thread.sleep(3000);

}?catch?(InterruptedException?e)?{

e.printStackTrace();

}

return?RED;

}

};

private?TrafficLamp(){}

private?TrafficLamp(int?time){

}

public?abstract?TrafficLamp?state();

//簡單的模擬

}

public?static?void?main(String[]?args)?{

Boolean?flag=true;

While(flag){

RED.state().state().state();

}

}

?

總結

以上是生活随笔為你收集整理的枚举类能继承吗?能被继承吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。