Scala Abstract Classes

原创转载请注明出处: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


 

猜你喜欢

转载自agilestyle.iteye.com/blog/2334485
今日推荐