抽象类写法如下:
/** * 对象:抽象类 * 能很好的使用它进行后期代码的解耦和维护 * 具体实现: * 在需要继承实现的类去赋值的属性前和实现的方法前面加上abstract修饰符,免去open */ abstract class News{ var origin = "reporter" abstract var content:String abstract fun newsLength():Int }
继承类写法如下:
package com.init.demo.model /** * 对象:抽象类实现 *抽象类不能直接被实例化 * 因为他的属性和方法没有完整赋值和实现 * 继承类继承实现抽象类:把方法和属性完整的赋值和实现 */ class SchoolNews:News(){ override var content: String = "" // get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates. // set(value) {} override fun newsLength(): Int = content.length } fun main(args: Array<String>) { val schoolNews = SchoolNews() schoolNews.content = "Today,we are learning Kotlin" println(schoolNews.newsLength()) println(schoolNews.origin) }