[英]constraint a super class can not override the value of subclass
此方法在Scores類中,該類設置了類別變量scores,但是分數是其子類的組合,例如, scores = sub scores1 + sub scores2
,sub1 / sub2由Scores的子類計算。
public void setScores (double scores) {
this.scores = scores;
}
public void calculateScore(double sub1, double sub2) {
this.scores = (sub1 + sub2) /2;
}
是否有方法/設計技能/慣例來限制類不能更改分數值(即運行setScores),僅在calculateScore()運行之后。
擺脫這兩種方法,並實現final double getScores(double sub1, double sub2)
進行計算,並返回所需的結果。
您可以使用calculated
的標志,如果它為true,則在setScores(...)
引發異常。 請注意,這種方法只會在運行時強制執行該約束,並且您可能會錯過在測試中引發異常的情況。
通常,在編譯時強制執行約束是有利的,但是我們需要更多信息。 這是一個基於您其他約束條件的猜測的想法:
如果只想一次調用setScores(...)
,也可以將分數傳遞給構造函數。 在這種情況下,您要么完全擺脫了setScores(...)
要么進行保護以僅允許此類,子類和同一包中的類來調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.