Scala 特质

xiaoxiao2025-05-20  38

Scala 特质


特质用于类之间共享接口与字段,类似于Java的接口。类可以扩展特质,但是特质不能被实例化,因此也没有参数。

1 定义特质

# 定义最小限度特质 trait HairColor # 使用泛型与抽象方法 trait Iterator[A]{ def hasNext:Boolean def next():A }

2 使用特质

# 类扩展特质 class IntIterator(to:Int) extends Iterator[Int] { private var current = 0 override def hasNext:Boolean = current < to override def next(): Int = { if(hasNext) { val t = current current += 1 t }else 0 } }

3 子类型化

# 特质定义 trait Pet { val name: String } # 类定义 class Cat(val name: String) extends Pet class Dog(val name: String) extends Pet # 实例化 val dog = new Dog("Harry") val cat = new Cat("Sally") # 特质指向所有实现特质的子类 val animals = ArrayBuffer.empty[Pet] animals.append(dog) animals.append(cat) animals.foreach(pet => println(pet.name))

翻译源:Scala Tour

转载请注明原文地址: https://www.6miu.com/read-5030399.html

最新回复(0)