[英]Different field instances in class and parent/Call super constructor with method
我正在嘗試使用方法從類中調用超級構造函數。 整個設置如下所示:
class Straight(hand: Hand) extends Combination(Straight.makeHandAceLowIfNeeded(hand), 5)
object Straight {
private def makeHandAceLowIfNeeded(hand: Hand): Hand = {
...
}
}
盡管確實可以編譯,但它具有一些相當奇怪的運行時行為。 調試時,我注意到Straight實例具有兩次定義的“ hand”屬性。 有人可以告訴我怎么回事,以及用不同的參數調用超級構造函數的正確方法是什么? 在我的用例中,我想用修改過的手來調用超級構造函數,與原始構造函數參數相比,在其中我替換了一張卡。
具有重復字段的調試器屏幕截圖: 。
這是調用超類構造函數的一種很好的方法。 這是兩個私有字段,它們沒有沖突,盡管您可以重命名其中一個以避免在調試過程中(或者如果您想從子類訪問超類的值)引起混淆。 但是,只有在構造函數外部使用該字段時,才應為該類參數生成該字段,而在您的情況下似乎不是這樣。 您是否簡化了Straight
的定義?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.