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

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