在计算机我们通过抽象事物的共同点对事物进行分类,在现实中我们人类认识是否也是通过归类的方式来认识事物,区分事物。分类通常也是采取抽象方式来进行分类。这里我们把之前的定义 Human 修改为抽象类,通过给 class 添加 abstract 更改为抽象类。
abstract class Human(var name:String){
abstract fun walk()
}
class XMan(name:String):Human(name){
override fun walk(){
println("walk two seepd ")
}
}
class Man(name: String):Human(name){
override fun walk() {
println("normal speed walk")
}
}
class Woman(name:String):Human(name){
override fun walk() {
println("normal speed walk")
}
}
那么我们回头再看一看多态
xmen.jpeg
- 同种功能,不同表现形态
我们和变种人同样会移动,但是有的变种人是靠飞来移动,而我们人类是靠走来移动。
class XMan(name:String):Human(name){
override fun move() {
println("can fly")
}
override fun walk(){
println("walk two seepd ")
}
}
val icanfly = XMan("icanfly")
val tom = Man("tom")
val alice = Woman("alice")
var houseList = listOf<Human>(icanfly,tom,alice)
for( human in houseList){
human.move()
}
kotlin_end.jpg
网友评论