zoukankan      html  css  js  c++  java
  • 大数据系列修炼-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

  • 相关阅读:
    CentOS6.0/RedHat Server 6.4安装配置过程 详细图解!
    关于Haproxy安装和配置:负载配置【haproxy.cfg】问题记录
    菜鸟学习Struts——bean标签库
    2013——2014总结
    高效程序员的45个习惯读书 ——敏捷开发修炼之道笔记之态度决定一切
    Hive深入浅出
    Java从入门到精通——调错篇之SVN 出现 Loced错误
    考试系统优化——准备工作
    深入解析:分布式系统的事务处理经典问题及模型(转载分享)
    黑客攻击 UVa11825
  • 原文地址:https://www.cnblogs.com/524646016-zhang/p/zhangsh_dt_scala_04.html
Copyright © 2011-2022 走看看