抽象类和接口很类似,抽象类不能被实例化需要使用abstract 关键字声明,抽象类实现接口后,接口中没有函数体的函数可以不重写,接口中的这些方法就自动被继承到实现接口的抽象类中,称为抽象方法
package loaderman.demo open class base{ open fun fn(){} }
package loaderman.demo abstract class Persons :base(){ override abstract fun fn() }
package loaderman.demo open class Person :Persons(){ override fun fn() { println("Person f") } open var mName: String = "Person name" open fun getName(): String { println(mName) return mName } }
package loaderman import loaderman.demo.Person fun main(arg: Array<String>) { println(Person().fn()) }
抽象方法不需要使用open声明,因为抽象类本身就是可继承的