Scala 的继承快速入门|学习笔记

简介: 快速学习 Scala 的继承快速入门。

开发者学堂课程【Scala 核心编程-基础Scala 的继承快速入门】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Scala 的继承快速入门

 

目录

一、Scala 继承的基本语法

二、编写 Student 继承 Person 的案例

 

一、Scala 继承的基本语法

Scala 继承的语法和 Java 继承的语法基本一样:

class 子类名 extends 父类名{类体}。

 

二、编写 Student 继承 Person 的案例

1.代码

编写一个 Student 继承 Person 的案例,体验一下 Scala 继承的特点

package com.atguigu.chapter07.myextends

object Extendss01 {

def main(args:Array[String]):Unit = {

//使用

val student = new student

student.name = "jack" //调用了 student.name()

student.studying()

student.showInfo()

}

}

class Person { //Person 类

var name:String = _

var age:Int = _

def showInfo():Unit = {

println("学生学习如下:")

println("名字:"+this.name)

}

}

//Student 类继承了 Person 类

class Student extends Person {

def studying():Unit = {

//这里可以使用父类的属性

println(this.name + "学习 scala 中...")

}

}

运行

image.png

2.class 逻辑

在 class 里面

class Person { //Person 类

var name:String = _

var age:Int = _

def showInfo():Unit = {

println("学生学习如下:")

println("名字:"+this.name)

}

都是私有的。

首先观察父类 person

person.class

image.png

student.class

student 继承了 person

image.png

继承完了之后上面的代码是可以使用的。它可以使用 name 和 age 的原因是调用了 public 的东西。

image.png

代码中的 name 是私有的,但是上面的代码可以用到,是因为在 student.name = "jack" //调用了student.name()方法。

而这里的 name()方法是 class Person 公共的 name 方法。于是它的调用机制就是 Person 的方法。

3.强调点

student.name = "jack"这里调用了 student.name()方法。

相关文章
|
Java Scala
165 Scala 继承
165 Scala 继承
42 0
|
5月前
|
Java 大数据 Scala
Scala快速入门--Scala环境搭建【Windows10】图解
Scala快速入门--Scala环境搭建【Windows10】图解
68 0
|
消息中间件 Java 大数据
Scala快速入门
Scala快速入门
104 0
|
分布式计算 Java 大数据
|
分布式计算 Java Scala
scala面向对象编程之继承
scala使用extends关键字来实现继承。可以在子类中定义父类中没有的字段和方法,或者重写父类的方法。 示例1:实现简单继承
162 0
scala面向对象编程之继承
Scala快速入门-11-常用集合操作
所有的集合都扩展自Iterable特质 集合有三大类,分别为序列、集和映射 几乎所有集合类,Scala都同时提供了可变和不可变的版本 Scala列表要么是空的,要么拥有一头一尾,其中尾部本身又是一个表列 集是无先后次序的集合 用LinkedHashSet来保留插入顺序,或用SortedSet来按顺序进行迭代 +将元素添加到无先后次序的集合中;+:和:+向前或向后追加到序列;++将两个集合串接在一起;-和--移除元素 映射、折叠和拉链操作是很有用的技巧,用来将函数和操作应用到集合中的元素
|
安全 Java 编译器
Scala快速入门-10-模式匹配与样例类
mathch表达式是一个更好的switch,不会有穿透到下一个分支的问题 如果没有模式能够匹配,会抛出MatchError,可以用case _ 模式来避免,相当于Java中的default 模式可以包含一个随意定义的条件,称做守卫 可以匹配数组、列表、元组等模式,然后将匹配到不同部分绑定到变量 样例类及密封类的模式匹配 用Option来存放可能存在也可能不存在的值,比null更安全
Scala快速入门-9-高阶函数
作为值的函数 创建匿名函数 带函数参数的函数 闭包 柯里化
|
Java Scala
Scala快速入门-8-特质
Scala和Java一样不允许类继承多个超类,特质解决这一局限性 类可以实现任意数量的特质 当将多个特质叠加在一起时,顺序很重要,其方法先被执行的特质排在更后面 Scala特质可以提供方法和字段的实现 特质要求实现它们的类具备特定的字段、方法或超类 特质可以同时拥有抽象方法和具体方法,而类可以实现多个特质
|
Java Scala
Scala快速入门-7-继承
继承类 extends 重写方法时必须用override 只有主构造器可以调用超类的主构造器 重写字段 抽象类、字段