Scala学习第十三天 抽象类、抽象字段、抽象方法

来源:互联网 发布:92kaifa 域名秀 编辑:程序博客网 时间:2024/06/10 06:22

1、在普通类中 字段必须赋值(有两种方式1.赋具体的值 2.”_”占位赋值方法 表明只占位但没有具体的值)
2、抽象类不需要初始化和可以有抽象方法
3、抽象字段定义 只需赋值 即为抽象字段
4、抽象方法定义:与Java不同的是 方法定义不需要有 abstract声明,只需不写方法体即可

class AbstractClass{        var id: Int = _   //注意 这种方式必须声明为var     //不可以定义为val 原因是因为_的值不明确  }  abstract class SuperTeacher(val name: String){     var id : Int        var age : Int      def teach   }  class TeacherForMaths(name: String) extends SuperTeacher(name) {//复写抽象类的成员,可以加override,可以不加,加上的话语义理解比较好      override var id = name.hashCode()     override var age = 29      override def teach = println("teaching Math");  }  /**   * 抽象类、抽象字段、抽象方法   */  object AbstractOps {      def main(args: Array[String]): Unit = {          val teacher = new TeacherForMaths("Spark")          teacher.teach                                        println("teacher.id:"+teacher.id)          println("teacher.age:"+teacher.age)    }  }  /*结果是:Teaching!!!              teacher.id:80085693              Spark:29              */
0 0