package day03 object TraitDemo { def main(args: Array[String]): Unit = { val human = new Human println(human.name) println(human.distance) println(human.fight) println(human.run()) } } /** * 特质 */ trait Flyable { // val distance: Int def fight: String def fly: Unit = { println("flying") } } /** * 抽象类 */ abstract class Animal { val name: String def run(): String def climb: Unit = { println("I can climb") } } // 可以直接继承 class Human extends Animal with Flyable { override val name: String = "aaa" override def run(): String = "I can run" override val distance: Int = 500 override def fight: String = "fighting with gun" }