叠加特质的注意事项和细节|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习叠加特质的注意事项和细节。

开发者学堂课程【Scala 核心编程-基础叠加特质的注意事项和细节】学习笔记,与课程紧密联系,让用户快速学习知识。

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


叠加特质的注意事项和细节

 

内容介绍

一、叠加特质注意事项和细节

二、叠加特质的课堂练习

三、整理

 

一、叠加特质注意事项和细节

1、特质声明顺序从左到右。

2、Scala 在执行叠加对象的方法时,会首先从后面的特质(从右向左)开始执行。

3、Scala 中 特质中如果调用 super,并不是表示调用父特质的方法,而是向前面(左边)继续查找特质,如果找不到,才会去父特质查找。

4、如果想要调用具体特质的方法,可以指定: super[特 质....).其中的泛型必须是该特质的直接超类类型。可以指定但是不能跳着指定

5、//如果我们希望直接调用 data4的 insert 方法指定如下

前面顺序不变构建顺序没有任何影响

// 1. operate4. . .

// 2. Data4

//3. DB4

//4.File4

找到 File4,执行向文件super 明确指定 data4,那就不会再到界面看data4,直接插入数据第一向文件第二插入数据

trait File4 extends Data4 {

println("File4")

override def insert(id: Int): Unit= {

print("向文件")

super[Data4].insert(id)

}}

执行代码向文件插入数据=100,需要注意 super[Data4].insert(id)指定有要求,//说明 super[?] ?的类型,必须是当前的特质的直接父特质(超类),Data4继承 operate4,改成 operate4,从语法上看没有报错但是执行会出现提示信息不是 file4的父类要注意语法的区别

 

二、叠加特质的课堂练习

要求:修改一下构建对象的混入多个特质的顺序,请学员说出输出结果。

Println‘’==============================‘’

//练习题

Val mySQL4 = new MySQL4 with File4 with DB4

mySQL4. insert(999)

//构建顺序

// 1. operate4. . .

// 2. Data4

// 3. File4

// 4. DB4

//执行顺序

先看 DB4面 insert,执行向数据库

//1.向数据库

super 看 file4。

//2.向文件

向文件突然出现 super[data4].insert(id),不用往左边看刚好混合在一起等价不写就相同因为左边没有了再找 data4。

//3.插入数据=999

运行运行结果如下

==============================

Operate4...

Data4

Fileh

DB4

向数据库

向文件

插入数据= 999

 

三、整理

1、叠加特质注意事项和细节

(1)特质声明顺序从左到右。

(2)Scala 在执行叠加对象的方法时,会首先从后面的特质(从右向左)开始执行

(3)Scala 中特质中如果调用super并不是表示调用父特质的方法,而是向前面(左边)继续查找特质如果找不到才会去父特质查找

(4)如果想要调用具体特质的方法,可以指定: super[特质xxx(...)其中的泛型必须是该特质的直接超类类型不能随意让它跑那样会打破继承关系

2、课堂练习

要求:修改一下构建对象的混入多个特质的顺序,请学员说出输出结果。

//练习题

Val mySQL4 = new MySQL4 with File4 with DB4

mySQL4. insert(999)

//构建顺序

// 1. operate4. . .

// 2. Data4

// 3. File4

// 4. DB4

//执行顺序

//1.向数据库

//2.向文件

//3.插入数据=999

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
设计模式 存储 安全
【C++ 基本概念】C++编程三剑客:模板、多态与泛型编程的交织与差异
【C++ 基本概念】C++编程三剑客:模板、多态与泛型编程的交织与差异
381 0
|
6月前
|
Python
继承概念深度解析:代码视角下的科普之旅
继承概念深度解析:代码视角下的科普之旅
31 0
|
C++
C++中需要注意的细节
C++中需要注意的细节
59 0
|
编译器 C#
【C#本质论 六】类-从设计的角度去认知(封装)(下)
【C#本质论 六】类-从设计的角度去认知(封装)(下)
87 0
|
存储 Java 程序员
【C#本质论 六】类-从设计的角度去认知(封装)(上)
【C#本质论 六】类-从设计的角度去认知(封装)(上)
109 0
|
编译器 C#
【C#本质论 七】类-从设计的角度去认知(继承)(下)
【C#本质论 七】类-从设计的角度去认知(继承)(下)
67 0
|
存储 开发框架 .NET
【C#本质论 七】类-从设计的角度去认知(继承)(上)
【C#本质论 七】类-从设计的角度去认知(继承)(上)
92 0
不适合做朋友的人有哪些逻辑特征(三)
不适合做朋友的人有哪些逻辑特征(三)
92 0
|
关系型数据库 MySQL Scala
叠加特质|学习笔记
快速学习叠加特质。
叠加特质|学习笔记
|
开发者 Python
盒图细节|学习笔记
快速学习盒图细节
105 0
盒图细节|学习笔记