标签:特质 scala 练习 override def println skill eat Unit
object 练习 {
abstract class Coder {
var name: String = _
var age: Int = _
def eat(): Unit
// 技能
def skill(): Unit
}
class JavaCoder extends Coder {
override def eat(): Unit = println("Java程序员吃大白菜,和大米粥")
override def skill(): Unit = println("精通Java")
}
class PythonCode extends Coder {
override def eat(): Unit = println("Python程序员吃小白菜,喝小米粥")
override def skill(): Unit = println("精通Python")
}
trait BigData {
def learningBigData(): Unit = {
println("来到黑马之后")
println("掌握了:Hadoop、Zookeeper、HBase、Hive、Spark、Flink等")
println("项目经验:企业级360°全方位用户画像、千亿级数仓、黑马推荐系统、电信信号强度诊断")
}
}
class PartJavaCode extends JavaCoder with BigData {
override def eat(): Unit = {
super.eat()
println("精通Java + BigData的程序员,吃牛肉,和牛肉汤")
}
override def skill(): Unit = {
super.skill()
learningBigData()
}
}
class PartPythonCoder extends PythonCode with BigData {
override def eat(): Unit = {
super.eat()
println("精通Python + BigData的程序员,吃羊肉,喝羊肉汤")
}
override def skill(): Unit = {
super.skill()
learningBigData()
}
}
def main(args: Array[String]): Unit = {
println("普通Java程序员")
val jc = new JavaCoder
jc.name = "小歪歪"
jc.age = 20
println(jc.name, jc.age)
jc.eat()
jc.skill()
println("-" * 20)
println("精通Java + BigData的程序员")
val pjc = new PartJavaCode
pjc.name = "黑马一哥"
pjc.age = 30
println(pjc.name, pjc.age)
pjc.eat()
pjc.skill()
}
}
标签:特质,scala,练习,override,def,println,skill,eat,Unit 来源: https://blog.csdn.net/m0_58535137/article/details/123027022
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。