传送门
Scala入门系列之一--使用命令行往文件输入数据并读取数据
Scala入门系列之二--数组、元组、列表、集合数据类型简述
Scala入门系列之三--类和方法的创建以及命令行执行scala文件
Scala入门系列之四--类成员的可见性(private)以及用value和value_=进行读取和修改
Scala入门系列之五--主构造器和辅助构造器
Scala入门系列之六--伴生对象和伴生类
Scala入门系列之七--scala中的继承
Scala入门系列之八--scala中的特质(trait),也称接口
Scala入门系列之九--模式匹配两大法宝(match语句和case类)
Scala入门系列之十--包
Scala入门系列之十一--函数式编程基础
Scala入门系列之十二--高阶函数
Scala入门系列之十三--针对容器的操作(遍历/映射/过滤/规约操作)
Scala入门系列之十四--使用IDEA编写Scala代码并Maven打包提交集群运行
传送门
一、继承
1)抽象类
- 如果一个类包含没有实现的成员,则必须使用abstract关键词进行修饰,叫作抽象类
abstract class Car(val name:String){
val carBrand:String //字段没有初始化值,就是一个抽象字段
def info() //抽象方法
def greeting(){
println("Welcome to my car!")
}
}
//关于上面的定义,说明几点:
//(1)定义一个抽象类,需要使用关键字abstract
//(2)定义一个抽象方法,不需要关键字abstract,只要把方法体空着,不写方法体就行
//(3)抽象类中定义的字段,只要没给初始化值,就表示是一个抽象字段,但是,抽象字段必须要声明类型,否则编译会报错
2)扩展类
Scala只支持单一继承,而不支持多重继承。在类定义中使用extends关键字表示继承关系。定义子类时,需要注意:
- 重载父类的抽象成员(包括字段和方法)时,override关键字是可选的;而重载父类的非抽象成员时,override关键字是必选的
- 只能重载val类型的字段,而不能重载var类型的字段。因为var本身就是可变的,可直接修改,无需重载。
abstract class Car{
val carBound:String
def info()
def greeting(){println("Welcome to my car!")}
}
class BMWCar extends Car{
override val carBrand = "BWM"
def info(){println("This is a "+ carBrand + "car!")}
override def greeting(){println("Welcome to my car!")}
}
object MyCar {
def main(args:Array[String]){
val myCar1 = new BMWCar()
myCar1.greeting()
myCar1.info()
}
}
//结果:
//Welcome to my car!
//This is a BMW car!
网友评论