23 带有特质的对象 Scala的动态混入

@Scala的动态混入

用于构建特质的对象

1. 除了在构建类的时候声明继承特质之外,还可以在构建对象的时候混入特质,扩展目标类的功能
2. 这种方式也可以用于抽象类功能的扩展
3. 动态混入是scala中特有的方式,可以在不改变类声明、定义的情况下,扩展类的功能,非常的灵活(可以降低耦合度)
4. 动态混入可以在不影响继承关系的基础上,给指定的类扩展功能。
5. 若抽象类中有抽象方法,该如何动态混入特质,将特质置于抽象类之后,再放置with关键字,并写实现方法
object Demo0 {
  def main(args: Array[String]): Unit = {
    val oracleDB = new OracleDB with Operate3
    oracleDB.insert(100)
    val mySQLDB = new MySQLDB with Operate3 {}
    mySQLDB.insert(500)

    val mongDB = new MongDB with Operate3 {
      override def say(): Unit = {
        println("重写抽象方法 say")
      }
    }
    mongDB.insert(1000)
    mongDB.say()
  }
}

trait Operate3 { //定义特质
  def insert(id: Int): Unit = { //定义一个方法 并实现
    println("插入数据 =" + id)
  }
}

class OracleDB {} //定义一个方法

abstract class MySQLDB {} //定义一个抽象类

abstract class MongDB {
  def say()
}```
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值