android开发之&android中的swift,kotlin高级部分(十)

138 阅读1分钟
/** 
* 类型检查与类型转换 
*/
open class Person(name:String,age:Int){    
    val name: String = name    
    val age: Int = age    

    fun printPersonInformation() = println("Hi,I am a Person")
}

class Student(name: String,age: Int,graders:Double):Person(name,age){    
    var graders : Double = graders    
    fun printStudentInfomation() = println("Hi,I am a student,my graders is ${graders}")
}

class Worker(name: String,age: Int,salary:Int):Person(name,age){    
    val salary: Int = salary    

    fun printWorkerInformation() = println("Hi,I am a worker,my salary is ${salary}")
}

fun main(args: Array<String>) {    
    val s = Student("shen",20,90.0)    
    val w = Worker("lou",45,3000)    
    s.printStudentInfomation()    
    w.printWorkerInformation()
}

/** 
* 操作符重载 
*/
fun Int.add(other:Int):Int{    
    return this + other
}
fun Int.sub(other:Int):Int{    
    return this - other
}
fun Int.mul(other: Int):Int{    
    return this * other
}
fun Int.div(other: Int):Int{    
    return this / other
} 
class Person(name:String,age:Int){    
    val name:String = name    
    val age:Int = age
}
fun Person.ageIncrement():Person{    
    return Person(this.name,this.age + 1)
}
fun main(args: Array<String>) {    
    println(1.add(2))    
    println(1.sub(2))    
    println(1.mul(2))    
    println(1.div(2))     
    val p = Person("shen",20)    
    println(p.ageIncrement().age)
}

/** 
* 反射 
*/
class Person2(name:String,age:Int){    
    val name:String = name    
    val age:Int = age
}
fun getClass(){    
    val c = Person::class    
    println(c)
}
fun main(args: Array<String>) { }