継承禁止にするかどうかは別の問題だ
Equalsの場合でも、ID比較とかならいいけど全フィールド比較ならsealedは必須
sealedにしないと
>(x.Equals(y) && y.Equals(z)) が true を返す場合、x.Equals(z) も true を返します。
に自動的に反することになる