/**
* 类型检查与类型转换
*/
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>) {
}