Scala 的继承注意事项|学习笔记

简介: 快速学习 Scala 的继承注意事项。

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

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


Scala 的继承注意事项

 

目录

一、Scala 继承给编程带来的便利

二、Scala 子类的继承

 

一、Scala 继承给编程带来的便利

1.提高了代码的复用性

2.提高了代码的扩展性和维护性

如果面试官问为什么继承提高了代码的扩展性和维护性

(1)示例

image.png

因为想要图示的线上范围内(A 类,B 类 ,E 类)有方法,就只需要在 A 类添加一个方法。如果只需要 B 类和 E 类有方法,就只需要在 B 类添加方法。

image.png

这样的话,写一段代码,对于的线就拥有了相应的方法和属性,所以就说明维护性很高。

(2)说明

当我们修改父类时,对应的子类就会拥有相应的方法和属性。

 

二、Scala 子类的继承

1.Scala 子类继承了什么?怎么继承了?

子类继承了所有的属性,只是私有的属性不能直接访问,想要通过公共的方法去访问。【debug 代码验证可以看见】。子类可以把父类的东西都继承。

2.代码说明

package com.atguigu.chapter07.myextends

//说明

//1.在 scala 中,子类继承了父类的所有属性

//2.但是 private 的属性和方法无法访问

object Extends02 {

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

val sub = new Sub()

sub.sayOk()

}

}

//父类(基类)

class Base {

var n1:Int = 1 //public n1(),public n1_$eq()

protected var n2:Int = 2

private var n3:Int = 3 //也是生成 private n3(),private n3_$eq()方法,但是是持久的

//这里 private 拿不到 n3

//写了三个方法

//def 默认的

//protected 方法

//private 方法

def test100():Unit = { //默认 public test100()

println("base 100")

}

protected def test200():Unit = { //?

println("base 200")

}

private def test300():Unit = { //private(这里应用 private,所以代码下面就可以得出 test300())

println("base 300")

}

}

//Sub 继承了 Base

class Sub extends Base {

def sayOk(): Unit = {

this.n1 = 20 //这里访问本质 this.n1_$eq()

this.n2 = 40

//this.n3 = 90

//因为上面 private 拿不到 n3,所以这里是无效的

println("范围”+this.n1 this.n2)

//演示前面的三个方法

test100()  //代码上面的 public 可以继承下来

test200() //是没有问题的

//test300()

//test300()-演示问题(不可获取)

image.png

}

}

点击 Debug

image.png

可以看见一个控制台

点开 sub,可以看见 n1、n2、n3都有,而且可以清晰的看见 n1 = 1、n2 = 2、n3 = 3前面直接有一个 f

image.png

运行

image.png

点击类,myextends 里面有很多 class

点开 Base.class

点开之后可以看见底层有 public

相关文章
|
11月前
|
Java Scala
165 Scala 继承
165 Scala 继承
36 0
|
分布式计算 Java 大数据
|
分布式计算 Java Scala
scala面向对象编程之继承
scala使用extends关键字来实现继承。可以在子类中定义父类中没有的字段和方法,或者重写父类的方法。 示例1:实现简单继承
157 0
scala面向对象编程之继承
|
Java Scala
Scala快速入门-7-继承
继承类 extends 重写方法时必须用override 只有主构造器可以调用超类的主构造器 重写字段 抽象类、字段
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
Scala 下界介绍和应用实例 | 学习笔记
|
Scala 开发者
Scala 上界介绍和应用实例2 | 学习笔记
快速学习Scala上界介绍和应用实例2
Scala 上界介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
Scala 泛型介绍和应用实例2 | 学习笔记
|
Scala 开发者 索引
关联 Scala 源码|学习笔记
快速学习关联 Scala 源码。
199 0
|
Java 大数据 Scala
scala 对象创建的流程分析|学习笔记
快速学习 scala 对象创建的流程分析。
102 0
|
Java Scala
Scala入门到精通——第九节 继承与组合
主要内容 类的继承 构造函数执行顺序 方法重写 匿名类 多态与动态绑定 组合与继承的使用 1 类的继承 下类的代码演示了scala类的继承 //Person类 class Person(name:String,age:Int){ } //Student继承Person类 class Student(name:String,age:Int,var studen
3258 0