首页 > 其他分享 >Scala的trait的用法

Scala的trait的用法

时间:2024-10-22 16:45:44浏览次数:3  
标签:val Scala trait 用法 抽象 Unit def 属性

①只有抽象方法的trait

②只有抽象成员和方法的trait

③具体成员的变量和方法

④对象继承特质

例子:

//定义一个特质

//特质可以有抽象属性,具体属性,抽象方法,具体方法
trait Beauty {
  //抽象方法
  val hair: String
  //具体属性
  var age = 18
  val height = 180 //val不可以修改 var可以修改

  //抽象方法(没有=)
  def smile

  //具体方法
  def say(): Unit = {}
}
  class Boy extends Beauty{
    //抽象属性 要具体实现
    val hair = "短发"

    //具体属性可以重写(可选)
      // var 修饰的 可以直接赋值
      // val 修饰的 可以用override重写
    override  val height =178
    age = 20

    //抽象方法 要具体实现
    def smile(): Unit ={
      println(s"嘴角微微扬起")
    }

    //具体方法可以重写(可选)
    override  def say(): Unit ={
      println(s"${age}岁,${height}大高个,${hair}")
    }
  }
object Test21 {
  def main(args: Array[String]): Unit = {
    val b1 = new Boy()
    b1.say()
  }
}

标签:val,Scala,trait,用法,抽象,Unit,def,属性
From: https://blog.csdn.net/2402_83403264/article/details/143162858

相关文章

  • require.context 用法
    require.context是Webpack特有的一个API,它用于动态加载模块,特别是在需要批量引入文件时非常有用。它允许你创建一个上下文,来包含特定目录下的模块,并可以以编程方式导入它们。以下是require.context的用法及示例。基本语法constcontext=require.context(directory,useS......
  • curl,nc和telnet的用法以及其他常用工具(nc代理与重定向)
      curl 是一个功能强大的命令行工具和库,用于在网络上传输数据。它支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SFTP、SMTP、POP3、IMAP等。curl 的名称来源于“ClientforURLs”。下面是对 curl 工具的详细介绍,包括基本用法、常用选项以及实际应用场景。基本功能发送......
  • 【SHELL】awk 命令用法
    linux命令行查询awk用法信息awk--helpUsage:awk[POSIXorGNUstyleoptions]-fprogfile[--]file...Usage:awk[POSIXorGNUstyleoptions][--]'program'file...POSIXoptions:GNUlongoptions:(standard)-fprogfile......
  • 【SHELL】sed 命令用法
    linux命令行查询grep用法信息sed--helpUsage:sed[OPTION]...{script-only-if-no-other-script}[input-file]...-n,--quiet,--silentsuppressautomaticprintingofpatternspace--debugannotateprogramexecution......
  • Java中super关键词的用法和注意事项
    在Java中,super关键字用于引用当前对象的父类。它主要有以下几种用途:1.访问父类的属性和方法:当子类中定义了与父类同名的属性或方法时,可以使用super关键字来明确指出要访问的是父类中的属性或方法。2.调用父类的构造器:在子类的构造方法中,可以使用super()来显式调用父类的构造器,以......
  • 【SHELL】grep 命令用法
    linux命令行查询grep用法信息grep--helpUsage:grep[OPTION]...PATTERNS[FILE]...SearchforPATTERNSineachFILE.Example:grep-i'helloworld'menu.hmain.cPATTERNScancontainmultiplepatternsseparatedbynewlines.Patternselectionandinte......
  • Scala的高阶函数
    高阶函数作用:把其他函数当做参数或返回值defmain(args:Array[String]):Unit={//定义数组,Array(1,2,3,4)vararr=Array(10,22,13,54)//定义一个数组有4个元素//println(arr(2))//获取第一个元素//遍历for(i<-arr)......
  • rolling 用法
    Pandas库中的`rolling`方法是一种强大的数据处理工具,主要用于执行基于滑动窗口的计算,这在时间序列数据或数据框中非常常见。以下是对`rolling`方法及其支持的函数的综合概述:###1.`rolling`方法的基本概念和用法`rolling`方法用于创建一个滚动窗口对象,该对象可以应用于数据框......
  • Scala的继承(不劳而获)
    Scala中继承的定义为在原有类的基础上定义一个新类,原有类称为父类,新类称为子类 定义:在原有的基础上定义一个新类,原有类称为父类,新类称为子类。class子类名extends父类名 {类体}【问】当子类从父类继承的方法不能满足需要时,子类需要有自己的行为,怎么办?此时使用ove......
  • Scala的多态
     从编译的角度解释Scala的多态含义:在执行期间而非编译期间确定所引用对象的类型,根据实际类型调用其方法。一个编译型语言有两种类型,分别为编译类型和运行类型。程序中定义的引用变量所指向的具体类型和通过该变量发出的方法调用在编译时不确定,而是在程序运行期间才确定的。cl......