提示
抽象类中可以定义非抽象方法
抽象类中可以有构造方法
//抽象类
abstract class Person {
//抽象字段,没有初始化值
var name:String
//抽象方法,没有方法体
def id():Int
//抽象类中也可以定义具体方法
def smile():Unit = {
println("smiling")
}
}
//实现类
class Employ extends Person{
override var name: String = "Jeffy"
override def id(): Int = {
name.hashCode()
}
//已经实现过的类子类不用强制重写,也可以重写
override def smile(): Unit = {
super.smile()
println("子类的笑")
}
}
//主方法
object MainApp extends App{
val obj = new Employ()
println(obj.id())
obj.smile()
}