scala里面的抽象类还是比较常用的,毕竟控制可传入参数的上下界限没有JAVA那么灵活,所以必要的时候用抽象类来写代码
package com.wy
//abstract 抽象类关键字
abstract class Abstract_Person {
var name1:String = _ //非抽象属性,不可以用null,你要给一个初值这里用下划线
var name2:String //抽象属性,没值
/**
* 非抽象方法
*/
def method1:Unit={
println("打印抽象类的非抽象方法!")
}
/**
* 抽象方法
* @return
*/
def method2:String
}
用的时候如下
package com.wy
class Abstract_Student extends Abstract_Person{
override var name2: String = _
/**
* 继承来的抽象方法
*
* @return
*/
override def method2: String = {
println("重写了抽象方法!")
"success"
}
//其他的也有只是不显示
}
用的时候正常用
package com.wy
object Abstract_Test {
def main(args: Array[String]): Unit = {
var student = new Abstract_Student
student.name1 = "name1"
student.name2 = "name2"
println(student.name1)
println(student.name2)
student.method1 //调用非抽象方法
student.method2 //调用抽象方法
}
}