我创建了这段代码
trait Animal {}
class Chien extends Animal {}
class Chat(name:String) extends Animal {
def this()=this("Chat sans nom")
}
class Siamois(name:String) extends Chat(name:String) {
def this()=this("Siamois sans nom")
}
class BébéSiamois(name:String) extends Siamois(name:String) {
def this()=this("Bébé Siamois sans nom")
}
val chat1:Chat=new Chat("Darius") // ne passera pas
val chat2:Siamois=new Siamois("Iroise")
val chat3:BébéSiamois=new BébéSiamois("Jazz")
val chat4:Siamois=new BébéSiamois("Enzo")
val chat5: BébéSiamois=new BébéSiamois("Elios")
val listeFelins=List(chat2,chat3,chat4,chat5)
这是我的问题,我如何访问 Chat、Siamois 和 BébéSiamois 中常用的字段名称?
def createAListeOfSiamoisAndChild[T<:Siamois](xs:List[T]):Unit={
xs.foreach(println(_))
}
谢谢
让它val name: String
.在普通类(即不是案例类(中,没有val
的字段会生成一个private
修饰符。Case 类将其作为整体语法糖的一部分,因此另一种可能性是使您的类case
。
此外,在传递值时不必指定类型(name: String
(,通常 Scala 会推断出这一点。