大数据系列修炼-Scala课程04

本文深入探讨Scala中继承、抽象类、接口与混入的使用,包括超类构建、字段重写、方法重写、抽象类与抽象方法的实现,以及如何在对象中混入trait提升代码复用性。旨在帮助开发者掌握Scala核心特性,为大数据开发奠定坚实基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scala中继承实现:超类的构造、字段重写、方法重写

关于超类的构建:超类可以在子类没有位置的限制,可以在子类中调用父类的方法

类中字段重写:在重写字段前面加一个override就可以重新赋值

类中方法重写:与字段重写差不多,参数,方法名也要相同

 

class Person1(val name : String, var age : Int){
  println("The primary constructor of Person")
  val school = "BJU"
  def sleep = "8 hours"
  override def toString = "I am a Person1!"
}
class Worker(name : String, age : Int, val salary : Long) extends Person1(name, age){
  println("This is the subClass of Person, Primary constructor of Worker")
  override val school = "Spark"
  override def toString = "I am a Worker!" + super.sleep
}

 

 

抽象类、抽象字段、抽象方法

抽象类实现:在前面加一个abstract 关键字,里面的字段可以不赋值,方法可以不实现,如果不是抽象类的字段可以用占位符来代替

抽象字段实现:字段前可以加override来赋值

抽象方法实现:方法前也是加一个override关键字

class AbstractClassOps{
  var id : Int = _
}
abstract class SuperTeacher(val name : String){
  var id : Int
  var age : Int
  def teach
}
class TeacherForMaths(name : String) extends SuperTeacher(name){
  override var id = name.hashCode()
  override var age = 29
  override def teach{
    println("Teaching!!!")
  }
}

Scala中接口的trait以及在对象中混入trait实现

Scala中接口trait实现:Scala中接口用trait来修饰,而java中用interface来修饰,方法中可以是抽象方法和没有实现的空方法,接口实现用extends来操作,方法可以被实现也可以不实现

在对象中混入trait实现:接口可以被多个类实现,如果某个类没有实现,在实例对象是可以用别的对象实现的方法with otherClass ,就可以调用里面的方法,这样灵活性就大了

trait Logger{
//  def log (msg : String)
  def log (msg : String){}
}
class ConcreteLogger extends Logger with Cloneable{
  
//  override def log(msg : String) = println("Log: " + msg)
  
  def concreteLog{
    log("It's me !!!")
  }
}
trait TraitLogger extends Logger{
  override def log (msg : String){
    println(" TraitLogger Log content is : " + msg)
  }
}
trait TraitLoggered{
  def loged (msg : String){
    println("TraitLoggered Log content is : " + msg)
  }
}
trait ConsoleLogger extends TraitLogger{
  override def log(msg : String){
    println("Log from Console :" +msg)
  }
}

 

其实学习Scala相关知识就是为了以后能往大数据方面发展,现在虽然工作是后台开发,也要什么懂一点。也相信周边效益,这样发展就多维度的。每天进步一点,坚持!

视频分享地址:http://pan.baidu.com/s/1c0hjFpA

 

转载于:https://www.cnblogs.com/524646016-zhang/p/zhangsh_dt_scala_04.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值