Scala 接口基本介绍|学习笔记

简介: 快速学习 Scala 接口基本介绍。

开发者学堂课程【Scala 核心编程-基础Scala 接口基本介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8989


Scala 接口基本介绍

 

内容介绍

一、Scala 接口基本介绍

二、trait 原理图

 

一、Scala 接口基本介绍

1、从面向对象来看,接口并不属于面向对象的范畴,因为抽象类可以说是面向对象的,而接口的本质是对继承机制的一个补充,因此,马丁认为,接口并不属于面向对象。Scala 是纯面向对象的语言,所以在 Scala 中没有接口。

2Scala 语言中,采用特质 trait (特征)来代替接口的概念,可以理解 trait 等价于 Java 中接口加上抽象类(interface + abstract class)也就是说,trait 既可以有抽象方法,有可以有非抽象方法,普通方法,有多个类具有相同的特征(特征)时,就可以将这个特质(特征)独立出来,采用关键trait 声明。

 

二、trait 原理图

image.png

如图,假设定义接口为 Java 接口,C 继承 B,B 继承 A,那么如果要让 B 去实现这个接口,只需要使用 implements去实现 Inter01就可以,而 Scala 中的特质 trait 有以下几个概念。
第一首先它的概念已经不叫实现,而叫继承。因为 trait 等价于接口加上抽象类,如果站在抽象类的角度来解释,也是说得通的。所以这个概念 implements 也就没有了。
第二,Scala 强大之处在于加入了动态混入[mixin],就像接口解耦,站在 Java 的角度讲是有局限性的,比如如果 B 实现了接口 inter01,而这个接口里面有 OK 方法,那么当 B 实现了这个接口后,C 也是可以实现 OK 方法的,这是因为传递机制相当于强制让C多了一个方法,但是如果作为安全性来讲,只想让 B 实现方法而 C 不可以实现 OK 方法的话,这点 JAVA 是做不到的,而 Scala 解决了这个问题。那就是动态混入,如果使用动态混入机制的话,B 使用 trait 中的规范,而 C 不会受到任何影响,这就是 Scala 的好处。

相关文章
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
99 0
Scala 下界介绍和应用实例 | 学习笔记
|
Scala 开发者
Scala 上界介绍和应用实例2 | 学习笔记
快速学习Scala上界介绍和应用实例2
78 0
Scala 上界介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
64 0
Scala 泛型介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Windows 搭建S cala 开发环境|学习笔记
快速学习 Windows 搭建 Scala 开发环境。
161 0
Windows 搭建S cala 开发环境|学习笔记
|
小程序 Java 编译器
Scala 快速入门|学习笔记
快速学习 Scala 快速入门。
101 0
Scala 快速入门|学习笔记
|
Scala 开发者 索引
关联 Scala 源码|学习笔记
快速学习关联 Scala 源码。
187 0
|
Java 大数据 Scala
scala 对象创建的流程分析|学习笔记
快速学习 scala 对象创建的流程分析。
88 0
|
大数据 Java 编译器
Scala 字符类型|学习笔记
快速学习 Scala 字符类型。
154 0
|
大数据 Scala 开发者
Scala 整型|学习笔记
快速学习 Scala 整型。
99 0
|
10天前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
16 0