/**
* 描述:有时候只是要对某个类进行轻微改造,供临时使用,避免继承
* 对象声明和表达式就很有用.
* 作者:jet
* 创建时间: 2017-11-21 17:22
* 修改人:
* 修改时间:
* 修改内容:
*/
//对中国人这个类来说,可能各省人适合继承
open class Chinese(var name:String){
open val skin = "yellow"
}
fun main(args: Array<String>) {
//但如果是外国人入籍,就不适合用“继承”
//对象表达式:val 对象名 = object:类,接口{//属性或方法override定义}
val baako = object :Chinese("Baako Zaid"){
override val skin: String
get() = "black"
}
println(baako.skin)
//纯对象表达式:临时使用,无须继承任何类
val tempPoint = object {
var x =1
var y =2
}
println(tempPoint.y)
//相当于调用函数
NetworkRequestManager.register()
//与类关联性强
IDCard.create()
}
//对象声明。不能用在函数中
//一般用于对其他类的一种包装
object NetworkRequestManager{
fun register(){
println("链接网络注册中。")
}
}
//伴生对象: 一般用于创建一个类的实例的"工厂"方法
//可用于与Java的静态成员互操作
class IDCard{
companion object {
fun create()=IDCard()
}
}
22.对象声明和表达式
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...