package day03
/**
* 特质、抽象类、继承、重写、实现等
*/
object ClassDemo {
def main(args: Array[String]): Unit = {
val human = new Human
println(human.name)
println(human.climb)
println(human.fight)
}
}
/**
* 特质
*/
trait Flyable {
// 声明一个没有值的字段
val diatance: Int = 900
// 声明一个没有实现的方法
def fight: String
// 声明一个实现的方法
def fly: Unit = {
println("I can fly")
}
}
/**
* 抽象类
*/
abstract class Animal {
// 声明一个没有赋值的字段
val name: String
// 声明一个没有实现的方法
def run(): String
//声明一个有实现的方法
def climb: String = {
"I can climb"
}
}
class Human extends Animal with Flyable {
override val name = "张三"
// 重写了抽象类中没有实现的方法
override def run() = "I can run"
// 重写了抽象类中没有实现的方法
override def climb: String = "override climb"
// override val diatance = 100
// 实现了特质中没有实现的方法,可以不用override关键字,用了也可以
def fight = "with 棒子"
// 实现了特质中有实现方法
override def fly: Unit = println("override fly")
}
特质、抽象类、继承、重写、实现等
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方...
- Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好...