`

学习scala笔记--11 trait基础

 
阅读更多

 

 

 

scala  trait基础

 

 

scala  Trait-- 作为接口使用

可以 继承多个 trait

 

scala> :paste

// Entering paste mode (ctrl-D to finish)

 

trait Hello1 {

 def sayHello1

}

 

trait Hello2 {

def sayHello2 

}

 

trait Hello3 {

 def sayHello3 

}

 

class Hello extends Hello1 with Hello2 with Hello3 {

 def sayHello1 { println(" hello1")}

 def sayHello2 {println("hello2")}

 def sayHello3 {println(" hello3")}

}

 

// Exiting paste mode, now interpreting.

 

defined trait Hello1

defined trait Hello2

defined trait Hello3

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@3d26e7ba

 

scala> h.sayHello1

 hello1

 

scala> h.sayHello2

hello2

 

scala> h.sayHello3

 hello3

 

 

----------------------------------

 

 

trait 中定义具体方法

 

 

scala> trait helloTrait {

     | def sayHello { println(" print helloTraint ")}}

defined trait helloTrait

 

scala> 

 

scala> 

 

scala> class Hello extends helloTrait 

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@2358a9f9

 

scala> h.sayHello

 print helloTraint 

 

 

 

 

 ----------------------------------

 

 

trait 中定义具体的 字段

 

 

scala> trait Hello1 {

     | val name="---hello1---"}

defined trait Hello1

 

scala> 

 

scala> class Hello extends Hello1

defined class Hello

 

scala> val h = new Hello

h: Hello = Hello@5074dd7

 

scala> h.name

res16: String = ---hello1---

 

 

 ----------------------------------

 

 trait 中定义抽象字段

 

 

scala> trait Hello1 {

     | 

     | val name:String

     | }

defined trait Hello1

 

scala> class Hello extends Hello1 

<console>:12: error: class Hello needs to be abstract, since value name in trait Hello1 of type String is not defined

       class Hello extends Hello1

             ^

 

scala> class Hello extends Hello1 {

     | val name="kkkkk"}

defined class Hello

 

scala> val h = new Heloo

<console>:11: error: not found: type Heloo

       val h = new Heloo

                   ^

 

scala> val h = new Hello

h: Hello = Hello@16d967e3

 

scala> h.name

res17: String = kkkkk

 

分享到:
评论

相关推荐

    Scala-学习资料-mht.rar

    在"Scala-学习资料-mht.rar"这个压缩包中,包含了关于Scala的学习资料,格式为MHT(单一文件网页),这种格式通常用于保存完整的网页内容,包括文本、图像和样式表。 首先,我们来了解一下Scala的基础知识。Scala这...

    scala学习笔记整理

    在"scala学习笔记整理"中,我们可以深入探讨以下关键知识点: 1. **基础语法**:Scala的基础语法与Java有相似之处,但也有很多独特的特点。例如,它支持变量的不可变性(immutability),使用`val`声明常量,`var`...

    学习scala好的项目

    在"scala-study"这个文件夹中,可能包含的子文件有练习代码、笔记、教程文档等,这些都是学习过程中的宝贵资料。通过这些资源,初学者可以逐步了解如何使用Scala编写Spark程序,包括如何创建SparkSession、加载数据...

    scala讲解笔记 入门及进阶 PDF文档1-5

    通过这些PDF文档的学习,你将不仅能够掌握Scala的基础知识,还能了解到如何在实际项目中运用这些知识,特别是对于大数据编程和分布式系统开发。每个文档都配有实例和注释,便于理解和实践,是Scala学习者宝贵的资源...

    Scala详细总结(精辟版++)

    ### Scala详细总结 #### 概述 Scala是一种静态类型的编程语言,其设计旨在结合面向对象编程和函数式编程的优点,并且能在Java虚拟机(JVM)上运行。这意味着Scala能够充分利用现有的Java类库,并且能够与Java代码无缝...

    scala学习资料

    5. 特性与模式匹配:Scala支持特性(trait),这是一种轻量级的抽象类型,可以用来实现多重继承。模式匹配是Scala的一个强大特性,可以用于解构复杂的数据结构,简化条件判断和数据处理。 6. 高级语法:Scala的语法...

    scala-learn:scala学习笔记

    本教程“scala-learn:scala学习笔记”旨在帮助初学者深入理解Scala的基础知识,同时也为有经验的程序员提供了一个复习和提升的平台。 1. **基础语法与数据类型** Scala的基础语法简洁而强大,包括变量声明(val和...

    scala学习笔记

    以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...

    scala笔记:学习scala时的笔记

    以下是一些在学习Scala时可能会遇到的关键知识点: 1. **基本语法与类型系统**: - Scala是强类型语言,变量声明时必须指定类型,但可以使用类型推断简化编写。 - `val`用于声明不可变变量,`var`用于声明可变...

    尚硅谷_韩顺平_Scala语言核心编程_PDF密码解除1

    《Scala语言核心编程》是尚硅谷教育机构韩顺平老师主讲的一门课程,主要针对Scala这门多范式编程语言进行深入讲解。...学习Scala不仅可以提升个人的技术能力,也为进入大数据、云计算等领域提供了坚实的编程基础。

    scala-impatient-notes

    《Scala 急救手册笔记...通过这些笔记,读者可以逐步掌握Scala的基础知识,理解其设计理念,从而更好地利用Scala进行高效、灵活的编程。无论是新手还是经验丰富的开发者,都能从中受益,提升对Scala的理解和应用能力。

    Scala-Tutorial:Scala语法学习笔记与程式码范例from 韩顺平老师教学

    Scala是一种多范式的编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种简洁、类型安全且高性能的...通过学习,你可以熟练掌握Scala语言,应用于大数据处理、分布式计算以及构建高并发、高可用的应用系统。

    Scala-notes:小号

    "Scala-notes:小号"这个标题可能指的是一个关于学习Scala的资料集合,其中包含了笔记和作业,帮助学习者深入理解和实践Scala编程。 在描述中提到的"Scala音符"可能是一个比喻,暗示着通过学习这个资料,你可以掌握...

    Scala_day01_scala_

    例如,类定义可以使用`class`关键字,但Scala也支持特质(trait),这是一种轻量级的接口实现方式,可以用来实现多重继承。在"Scala_day01.docx"中,你可能会看到如何创建和使用特质的示例。 其次,Scala是函数式...

    Scala笔记Markdown版本(至集合章节)

    总结,本Scala笔记Markdown版本涵盖了从语言基础到集合操作的重要内容,适合初学者入门和有经验的开发者巩固知识。通过学习,开发者将能够掌握Scala的核心特性和编程技巧,从而更好地利用Scala进行后端开发。

    快学Scala 第2版.zip

    这本书的中文完整版包含高清扫描和书签功能,使得读者可以轻松查找和学习相关内容,而且文字可选择复制,方便笔记和后续查阅。 Scala在大数据领域扮演着重要角色,主要归功于它与Apache Spark的紧密集成。Spark是一...

    Spark笔记,发出来希望可以帮到各位

    本笔记主要关注Spark的基础知识,同时也涉及了Scala语言的学习,因为Spark主要是用Scala编写的。 首先,Scala是一种静态类型的多范式编程语言,它结合了面向对象和函数式编程的特点。在第一章中,我们学习了Scala的...

    MyScalaStep:一步步记录我学习scala

    在Scala的学习旅程中,我们首先会接触到它的基础语法。Scala的语法简洁而富有表现力,例如,变量声明使用`val`或`var`,函数定义则采用`def`关键字。与Java不同,Scala支持模式匹配,可以更直观地处理数据结构。此外...

    scala_learn

    在"scala_learn-master"这个目录下,你可能会找到一系列的Scala教程文件,如`.scala`源代码文件、笔记文档、练习案例等,通过这些资源可以深入学习并实践上述知识点。此外,可能还会有对特定话题如并发、网络编程或...

    note2

    【标题】"note2"可能指的是一个笔记或者学习记录,其中包含了关于编程、技术或特定IT工具的内容。根据给出的标签“源码”和“工具”,我们可以推测这可能与编程语言的源代码分析或者开发工具的使用有关。由于没有...

Global site tag (gtag.js) - Google Analytics