/* * 有时候只是要对某个类进行轻微改造,供临时使用,避免继承 * 对象声明和表达式就很有用 *对面向对象编程的优化,避免一些继承导致的代价过高 * */ //对中国人来说,这个类,可能各省人适合继承 open class China(var name:String){ open val skin="yellow" } fun main(args: Array<String>) { //但如果外国人入籍,就不适合用继承 //对象表达式:val 对象名=object:类,接口{属性或方法的override定义} val baako= object : China("Baako Zaid") { override val skin="black" } println(baako.skin) //纯对象表达式:临时使用,无需继承任何类 val tempParking=object { var x=100 var y=200 } println(tempParking.x) //相当于调用函数 NetworkRequestManager.register() //伴生对象的方法,与类关联性强 IdCard.creat() } //对象声明,不能在函数中 //一般用于对其他类的一种使用上的包装 object NetworkRequestManager{ fun register(){ print("连接网络中") } } //伴生对象:一般用于创建一个类的实例的“工厂”方法 //java中的静态属性 class IdCard{ companion object{ fun creat() =IdCard(); } }
时间: 2024-10-24 19:10:05