Scala​超类怎么构造

这篇文章主要讲解了“Scala超类怎么构造”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Scala超类怎么构造”吧!

创新互联专注于网站建设|网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖集装箱等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身定制品质网站。

扩展类

在Scala中扩展类的方式和Java一样都是使用extends关键字

可以把类声明为final,使之不能扩张

也可以把单个方法或者字段声明为final,以确保它不能被重写,注意和Java的不同,Java中final修饰的字段意味着不可变。

重写方法

在Scala中重写一个非抽象的方法必须使用override修饰符

在子类中调用超类的方法,使用super,和Java一致。

protected修饰的字段和方法

被protected修饰的字段或者方法,可以被其子类访问;

与Java不同的是,protected修饰的成员对于类所属的包是不可见的;

protected[this],访问权限仅限当前的对象

可以使用包修饰符改变protected修饰的成员的可见性

类型检查和转换

Scala

Java

测试某个对象是否属于给定的类

obj.isInstanceOf[C]

obj instanceof C

强制类型转换

obj.asInstanceOf[C]

(C)obj

获取对象的类信息

classOf[C]

C.class

超类的构造

下面代码定义了一个子类和一个调用超类构造器的主构造器

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    }}

感谢各位的阅读,以上就是“Scala超类怎么构造”的内容了,经过本文的学习后,相信大家对Scala超类怎么构造这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

网站名称:Scala​超类怎么构造
当前网址:https://www.cdcxhl.com/article22/pdsjcc.html

成都网站建设公司_创新互联,为您提供小程序开发建站公司网站收录面包屑导航搜索引擎优化用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作