亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在抽象類上實現 ID 的優雅方式

在抽象類上實現 ID 的優雅方式

MM們 2023-05-17 16:44:04
我有一個抽象類。我希望每個實例都有一個唯一的 ID。我已經實施:public abstract class MyAbstractClass{    static AtomicInteger nextId = new AtomicInteger();    private int id;    public MyAbstractClass() {        id = nextId.incrementAndGet();    }}public class MyClass extends MyAbstractClass {       public MyClass(){             super();       }}除了沒有強制子類調用構造函數的部分之外,這種方法有效。有沒有辦法為抽象類實現全局 ID?
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

沒有什么強制子類調用構造函數。


除非父構造函數在層次上構建錯誤,否則您無法阻止子類調用super()。


通過“層次結構錯誤”,我的意思是有一個不基于其無參數構造函數的父構造函數。例如,


public MyAbstractClass() {

    id = nextId.incrementAndGet();

}


public MyAbstractClass(String s) {

    // ignores to call this();

}

否則,任何孩子最終都會調用super(), 并因此觸發您的 id 初始化。


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號