在 Scala 中, 使用 abstract 修饰的类称为抽象类. 在抽象类中可以定义属性、未实现的方法和
具体实现的方法。
/*
* abstract 修饰的类是一个抽象类
* */
abstract class Animal {
println("Animal's constructor ....")
// 定义一个 name 属性
val name: String = "animal"
// 没有任何实现的方法
def sleep()
// 带有具体的实现的方法
def eat(f: String): Unit = {
println(s"$f")
}
}
继承是面向对象的概念,用于代码的可重用性。 被扩展的类称为超类或父类, 扩展的类称
为派生类或子类。Scala 可以通过使用 extends 关键字来实现继承其他类或者特质。
/*
* with 后面只能是特质
*
* 父类已经实现了的功能, 子类必须使用 override 关键字重写
* 父类没有实现的方法,子类必须实现
* */
class Dog extends Animal {
println("Dog's constructor ...")
override val name: String = "Dog"
def sleep(): Unit = {
println("躺着睡...")
}
override def eat(f: String): Unit = {
println("")
}
}