面向接口编程 = 多态
open class Person(val name: String, val age: Int) {
fun think() {
println("Mr./Ms.$name, who is $age years old, is thinking!")
}
}
interface Study {
fun preview()
fun takeNotes()
fun review()
/* fun takeNotes() {
println("This's the function of taking notes.")
}
解释:如果接口中的一个函数拥有函数体,那这个函数体就是其默认实现,
当一个类去实现Study接口时,便只会强制要求实现preview和review函数*/
}
class Student(name: String, age: Int) : Person(name, age), Study {
override fun preview() {
println("Mr./Ms.$name is previewing.")
}
override fun takeNotes() {
println("Mr./Ms.$name is taking notes.")
}
override fun review() {
println("Mr./Ms.$name is reviewing.")
}
}
fun main () {
val student = Student("Jack", 19)
student.preview()
student.takeNotes()
student.review()
student.think()
}
1454

被折叠的 条评论
为什么被折叠?



