第六章 scala语言–Trait
前言
今天是学习Scala第六天打卡,开始学习Trait。
一、入门背景
在Scala中,Trait是⼀种特殊概念。
⾸先,Trait可以被作为接⼝来使⽤,此时Trait与Java的接⼝⽐较类似。同时在Trait可以定义抽象⽅法,其与抽象类中的抽象⽅法⼀样,不给出⽅法
的具体实现。
注意:
类使⽤extends继承Trait,,在Scala中,⽆论继承类还是继承Trait都是⽤extends关键字。
关于的trait的基本概念就不再阐述了。
二、Trait⽤法
1.基础知识
- 将trait作为接⼝使⽤
- 在trait 中定义具体的⽅法与字段 以及抽象字段
2.⾼级知识
- 实例对象混⼊trait
- trait链式调⽤(责任链设计模式)
- trait 覆盖抽象⽅法
- trait 具体⽅法与抽象⽅法的混合使⽤(模板设计模式)
三、开始代码之旅
代码如下(示例):
trait God{
def say(): Unit ={
println("god...say")
}
}
trait Mg{
def ku(): Unit ={
println("mg...say")
}
def haiRen():Unit
}
class Person(name:String) extends God with Mg{
def hello(): Unit ={
println(s"$name say hello")
}
override def haiRen(): Unit = {
println("ziji shixian ....")
}
}
object Lesson06_trait {
def main(args: Array[String]): Unit = {
val p = new Person("zhangsan")
p.hello()
p.say()
p.ku()
p.haiRen()
}
}
执行结果:
---------------------------------------------------------------------------------------------------------------------------
zhangsan say hello
god...say
mg...say
ziji shixian ....
总结
以上就是今天要讲的内容,本文就scala的Trait使用方面列举了一些示例及使用技巧。