百度云: http://pan.baidu.com/s/1jGjFpWy
腾讯微云: http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
DT大数据梦工厂 温故而知新 之13讲scala 中的抽象类的使用
package TestPractice
/**
* @author Administrator
*/
object AbstractDemo {
def main(args: Array[String]) {
//创建父类型引用操作子类型对象
val p: Person = new Student
//使用对象
p.eat
println(p.name + "\t" + p.age)
}
}
//定义一个抽象类,使用abstract class
abstract class Person {
//定义一个抽象字段
val name: String
//定义一个具体字段
val name2: String = "person"
var age: Int
var age2: Int = 15
//定义一个抽象方法,不需要abstract关键字
def eat
}
class Student extends Person {
//重写父类的抽象字段
override val name: String = "zhangsan"
//重写父类的具体字段
override val name2: String = "stuend"
override var age: Int = 19
//重写父类的抽象方法,其中override可以省略
override def eat: Unit = {
println("student eating....")
}
}
总结 定义一个抽象类,使用abstract class 定义一个抽象方法,不需要abstract关键字 定义一个抽象字段 不需要复赋值 可以用占位符来代替 重写父类的具体字段直接赋值 重写父类的抽象方法,其中override可以省略 父类中的字段子类必须被override