原创转载请注明出处:http://agilestyle.iteye.com/blog/2334485
Scala中的抽象类就跟Java一样,用abstract关键字来描述抽象类,抽象类包含了未定义的方法或未初始化的域。
package org.fool.scala.abstractclasses abstract class Animal { def templateMethod = s"The $animal goes $sound" def animal: String def sound: String } class Duck extends Animal { def animal = "Duck" def sound = "Quack" } class Cow extends Animal { override def animal: String = "Cow" override def sound: String = "Moo" } object AbstractClassesTest extends App { println(new Duck().templateMethod) println(new Cow().templateMethod) }
Console Output