大数据全系列 教程
1869个小节阅读:467.1k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
package com.itbaizhan.chapter05
object TraitDemo5 {
def main(args: Array[String]): Unit = {
new HBase().optData()
}
trait Operator{
def optData(): Unit ={
println("操作数据")
}
}
trait DataBase extends Operator {
override def optData(): Unit = {
print("向数据库中")
super.optData()
}
}
class HBase extends DataBase{ }
}
运行程序输出:向数据库中操作数据
但是HBase在写入数据时还会想WLog文件中写入数据,升级代码:
xxxxxxxxxx
trait WLog extends Operator{
override def optData(): Unit = {
print("向日志文件中")
super.optData()
}
}
class HBase extends DataBase with WLog { }
运行程序,输出结果:向日志文件中向数据库中操作数据
super关键字在此不是表示父特征的意思,而是表示上一级的意思。如上图所示,如果想要跳过DataBase的功能叠加,只需要修改WLog特征类的代码:
xxxxxxxxxx
trait WLog extends Operator{
override def optData(): Unit = {
print("向日志文件中")
//super.optData()
//跳过DataBase的功能叠加
super[Operator].optData()
}
运行程序,输出结果:向日志文件中操作数据。