大資料數列修鍊-Scala課程04

來源:互聯網
上載者:User

標籤:

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

 

大資料數列修鍊-Scala課程04

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.