>>54
それはちょっと違う。Javaが上記のコードでOKなのは、
サブクラスのフィールド定義がスーパークラスのフィールド定義を隠蔽(≠オーバーライド)しているから。
フィールドは静的な型だけに基づいて決まり、オーバーライドできない。

いっぽう、Scalaの場合、クラス定義におけるvalは一種のgetterのようなもので、オーバーライド
可能になってるので、public -> privateにするのは不可。