请选择 进入手机版 | 继续访问电脑版

好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

[BigData] 好程序员大数据教程Scala系列之继承

[复制链接]
叶子老师 发表于 2019-10-12 16:43:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
好程序员大数据教程Scala系列之继承1. 扩展类
Scala中扩展类的方式和Java一样都是使用extends关键字
可以把类声明为final,使之不能扩张
也可以把单个方法或者字段声明为final,以确保它不能被重写,注意和Java的不同,Java中final修饰的字段意味着不可变。
5.3.2. 重写方法
Scala中重写一个非抽象的方法必须使用override修饰符
在子类中调用超类的方法,使用super,和Java一致。
5.3.3.protected修饰的字段和方法
protected修饰的字段或者方法,可以被其子类访问;
Java不同的是,protected修饰的成员对于类所属的包是不可见的;
protected[this],访问权限仅限当前的对象
可以使用包修饰符改变protected修饰的成员的可见性
5.3.3. 类型检查和转换
Scala
Java
测试某个对象是否属于给定的类
obj.isInstanceOf[C]
obj instanceof C
强制类型转换
obj.asInstanceOf[C]
(C)obj
获取对象的类信息
classOf[C]
C.class
5.3.4. 超类的构造
下面代码定义了一个子类和一个调用超类构造器的主构造器
class Employ(name: String, age: Int, val Salary:Double) extends Person (name,age)
下面的代码展示类的继承,以及接口的实现等
object ClassDemo {
    def main(args: Array[String]) {
      val h = new Human
      println(h.byScala())
    }
  }
  //相当于Java的接口
  trait Coding{
    def byJava(flag : Boolean): Unit ={
      if(flag)
      {
        println("I can code by Java")
      }
      else{
          println("I can't code by Java")
      }
    }
    //未被实现的方法默认为抽象方法
    def byScala(): String
  }

  //抽象类
  abstract class Animal {
    def run(): Int
    val name: String
  }

  class Human extends Animal with Coding{

    val name = "abc"

    //打印几次"ABC"?
    val t1,t2,(a, b, c) = {
      println("ABC")
      (1,2,3)
    }

    println(a)
    println(t1._1)

    //在Scala中重写一个非抽象方法必须用override修饰
    override def byJava(flag: Boolean): Unit = {
      println("Coding by Java and Scala")
    }

    def byScala(): String={
      "coding by Scala"
    }
    //在子类中重写超类的抽象方法时,不需要使用override关键字,写了也可以
    def run(): Int = {
      1
    }

}
好程序员大数据教程http://www.goodprogrammer.org/bigdata.shtml

精彩内容,一键分享给更多人!
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
好程序员
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启