Spark学习使用笔记 - Scala篇(5)- 继承
来源:互联网 发布:网络隐私权的内容 编辑:程序博客网 时间:2024/06/05 16:27
继承override
//覆盖父类的field或者方法一定要加overrideclass BankAccount(val initialBalance: Double) { private var balance = initialBalance def deposit(value: Double) = { balance += value balance } def withdraw(value: Double) = { balance -= value balance }}class CheckingAccount(override val initialBalance: Double) extends BankAccount(initialBalance) { private var balance = initialBalance override def deposit(value: Double) = { balance -= 1 balance += value balance } override def withdraw(value: Double) = { balance -= 1 balance -= value balance }}class SavingAccount(override val initialBalance: Double) extends BankAccount(initialBalance) { private var balance = initialBalance private var freeProcess = 3 private val monthlyInterestRate = 0.01 private def checkFreeProcess = { if (freeProcess > 0) { freeProcess -= 1 false } else { true } } private def earnMonthlyInterest = { freeProcess = 3 balance += balance * monthlyInterestRate balance } override def deposit(value: Double) = { if (checkFreeProcess) balance -= 1 balance += value balance } override def withdraw(value: Double) = { if (checkFreeProcess) balance -= 1 balance -= value balance }
抽象
abstract class Item { //抽象filed和method不用abstract修饰 def price: Double def description: String}//def只能重写另一个def//val可以重写另一个val还有def//var只能重写另一个抽象varclass SimpleItem(val price: Double, val description: String) extends Item { override def toString = { "[" + description + ":" + price + "]" }}class Bundle extends Item { private val items = ArrayBuffer[Item]() def addItems(item: Item) = { items += item items } def price = { var amount = 0.0; for (i <- items) { amount += i.price } amount } def description = { items.mkString("") }}object Item{ def test = { val item1 = new SimpleItem(9.9,"pencil") val item2 = new SimpleItem(99.9,"pen") val items = new Bundle items.addItems(item1) items.addItems(item2) println(items.description) }}
0 0
- Spark学习使用笔记 - Scala篇(5)- 继承
- Spark学习使用笔记 - Scala篇(1)
- Spark学习使用笔记 - Scala篇(2)- 数组
- Spark学习使用笔记 - Scala篇(3)- 对象
- Spark学习使用笔记 - Scala篇(4)- 对象、包
- Spark学习使用笔记 - Scala篇(3)- 映射,元组
- scala学习笔记-继承
- scala学习笔记(七) 继承
- Scala学习笔记(七) - 继承
- Scala学习笔记(七) - 继承
- Scala学习笔记(七) - 继承
- scala学习笔记9 继承
- spark高级数据分析-scala学习(学习笔记)
- scala学习笔记5 spark-shell的简单操作
- scala学习笔记2(类,继承,抽象类)
- spark上的scala学习笔记
- spark学习笔记一:scala语言基础
- Spark学习笔记1-Scala基础语法
- JS设计模式学习
- spring企业应用论坛搭建遇到的问题
- mvc4 如何返回Json数据
- 传送门:一个有情怀的Android网络框架之NoHttp
- 小米手机打开报告mimu查看程序调试错误locat
- Spark学习使用笔记 - Scala篇(5)- 继承
- mysql explain join types
- 如何在 Laravel 中使用阿里云 OSS
- 分布式配置管理平台 - Disconf web管理端安装
- __NSTaggedPointerString 转码问题
- Java NumberFormat类的使用
- Ural 2037. Richness of binary words (打表+构造)
- 装饰者模式
- svn数据库自动备份脚本