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(单一文件网页),这种格式通常用于保存完整的网页内容,包括文本、图像和样式表。 首先,我们来了解一下Scala的基础知识。Scala这...
在"scala学习笔记整理"中,我们可以深入探讨以下关键知识点: 1. **基础语法**:Scala的基础语法与Java有相似之处,但也有很多独特的特点。例如,它支持变量的不可变性(immutability),使用`val`声明常量,`var`...
在"scala-study"这个文件夹中,可能包含的子文件有练习代码、笔记、教程文档等,这些都是学习过程中的宝贵资料。通过这些资源,初学者可以逐步了解如何使用Scala编写Spark程序,包括如何创建SparkSession、加载数据...
通过这些PDF文档的学习,你将不仅能够掌握Scala的基础知识,还能了解到如何在实际项目中运用这些知识,特别是对于大数据编程和分布式系统开发。每个文档都配有实例和注释,便于理解和实践,是Scala学习者宝贵的资源...
### Scala详细总结 #### 概述 Scala是一种静态类型的编程语言,其设计旨在结合面向对象编程和函数式编程的优点,并且能在Java虚拟机(JVM)上运行。这意味着Scala能够充分利用现有的Java类库,并且能够与Java代码无缝...
5. 特性与模式匹配:Scala支持特性(trait),这是一种轻量级的抽象类型,可以用来实现多重继承。模式匹配是Scala的一个强大特性,可以用于解构复杂的数据结构,简化条件判断和数据处理。 6. 高级语法:Scala的语法...
本教程“scala-learn:scala学习笔记”旨在帮助初学者深入理解Scala的基础知识,同时也为有经验的程序员提供了一个复习和提升的平台。 1. **基础语法与数据类型** Scala的基础语法简洁而强大,包括变量声明(val和...
以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...
《Scala语言核心编程》是尚硅谷教育机构韩顺平老师主讲的一门课程,主要针对Scala这门多范式编程语言进行深入讲解。...学习Scala不仅可以提升个人的技术能力,也为进入大数据、云计算等领域提供了坚实的编程基础。
以下是一些在学习Scala时可能会遇到的关键知识点: 1. **基本语法与类型系统**: - Scala是强类型语言,变量声明时必须指定类型,但可以使用类型推断简化编写。 - `val`用于声明不可变变量,`var`用于声明可变...
《Scala 急救手册笔记...通过这些笔记,读者可以逐步掌握Scala的基础知识,理解其设计理念,从而更好地利用Scala进行高效、灵活的编程。无论是新手还是经验丰富的开发者,都能从中受益,提升对Scala的理解和应用能力。
Scala是一种多范式的编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种简洁、类型安全且高性能的...通过学习,你可以熟练掌握Scala语言,应用于大数据处理、分布式计算以及构建高并发、高可用的应用系统。
"Scala-notes:小号"这个标题可能指的是一个关于学习Scala的资料集合,其中包含了笔记和作业,帮助学习者深入理解和实践Scala编程。 在描述中提到的"Scala音符"可能是一个比喻,暗示着通过学习这个资料,你可以掌握...
例如,类定义可以使用`class`关键字,但Scala也支持特质(trait),这是一种轻量级的接口实现方式,可以用来实现多重继承。在"Scala_day01.docx"中,你可能会看到如何创建和使用特质的示例。 其次,Scala是函数式...
总结,本Scala笔记Markdown版本涵盖了从语言基础到集合操作的重要内容,适合初学者入门和有经验的开发者巩固知识。通过学习,开发者将能够掌握Scala的核心特性和编程技巧,从而更好地利用Scala进行后端开发。
这本书的中文完整版包含高清扫描和书签功能,使得读者可以轻松查找和学习相关内容,而且文字可选择复制,方便笔记和后续查阅。 Scala在大数据领域扮演着重要角色,主要归功于它与Apache Spark的紧密集成。Spark是一...
本笔记主要关注Spark的基础知识,同时也涉及了Scala语言的学习,因为Spark主要是用Scala编写的。 首先,Scala是一种静态类型的多范式编程语言,它结合了面向对象和函数式编程的特点。在第一章中,我们学习了Scala的...
在Scala的学习旅程中,我们首先会接触到它的基础语法。Scala的语法简洁而富有表现力,例如,变量声明使用`val`或`var`,函数定义则采用`def`关键字。与Java不同,Scala支持模式匹配,可以更直观地处理数据结构。此外...
在"scala_learn-master"这个目录下,你可能会找到一系列的Scala教程文件,如`.scala`源代码文件、笔记文档、练习案例等,通过这些资源可以深入学习并实践上述知识点。此外,可能还会有对特定话题如并发、网络编程或...
【标题】"note2"可能指的是一个笔记或者学习记录,其中包含了关于编程、技术或特定IT工具的内容。根据给出的标签“源码”和“工具”,我们可以推测这可能与编程语言的源代码分析或者开发工具的使用有关。由于没有...