Kotlin中类和对象初始化

**

Kotlin中类和对象初始化

**
这里类的构造函数写法上和Java的不同,但用法都是一样的,Kotlin中用constructor()来表示一个类的构造方法,而不是Java中的类名。

class School{
//    构造方法
    constructor(name:String,address:String)
    constructor(name:String){
        println(name)//方法体
    }
}

当然,你也可以像下面这样写构造函数,constructor关键字可以被省略。

class SchoolOne constructor(name:String,address:String){
    //init{}是构造方法的方法体
    init {
        println(name)
    }
}

类的继承
1. 提取多个类的共性的到一个跟抽象的类,即父类
2.子类拥有父类的一切特征
3.子类也可以自定义自己的特征
4. 所有类都是最终继承自Any

open关键字跟Java中的final是恰恰相反的。对于可以重写的函数,都需要显示的指明,使用的是open关键字。如果没有,在子类中声明跟父类相同的方法是非法的。


open class Animal constructor(var name: String, var eat:String, var character:String){
    init {
        println("这是$name,他喜欢吃$eat,性格$character")
    }
}
//类CatDog 继承自Animal
class Cat constructor(name: String,eat: String,character: String):Animal(name,eat,character)
class Dog constructor(name: String,eat: String,character: String):Animal(name,eat,character)

fun main(args: Array<String>) {
//创建类实例。跟Java类似,只是没有new关

    var shcool:School=School("asdf")
    var shcoolOne:SchoolOne= SchoolOne("很水中学","中国")
    var cat:Animal=Cat("猫","鱼","温顺")
    var dog:Animal=Dog("狗","骨头","忠心")
    println(cat is Animal)  //判断猫是不是动物  是就返回true
    println(cat is Dog)     //判断猫是不是狗  不是就返回false
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值