1.抽象类是声明用abstract
2.方法是抽象方法
在抽象类中只需要定义方法,没有实现
3.字段是抽象方法
在抽象类中不给字段进行赋值
4.代码
packagecom.jn.scala.oop
/**
* @authoradmin
*/
classAbstractClassOps{
varid:
Int = _//使用占位符,只有在var时候可以使用占位符.val的时候是不能使用占位符的。
}
abstractclassSuperTeacher(valname:String){
varid:
Int//在字段进行申明的时候不给字段进行赋值,
varage:
Int
defteach//抽象方法不需要写方法的实现体,前面不需要添加关键字abstract
}
classTeacherForMethod(name:String)extendsSuperTeacher(name){
overridevarid=name.hashCode()//对抽象类定义的属性进行赋值
overridevarage=15
//实现抽象类的方法和属性的赋值可以不写override但是建议都写上,这样更加明了。
overridedefteach{//对抽象类定义的方法进行实现,
println("Teaching!")
}
}
objectAbstractClassOps{
defmain(args:
Array[
String]): Unit = {
valteach=newTeacherForMethod("Spark")
println("teach.id="+teach.id)
println("teach.age="+teach.age)
teach.teach
}
}
//运行结果
teach.id=80085693
teach.age=15
Teaching!