package com.example.myapplicationone
/*class person {//继承+open,class为类
var name =""
var age =0
fun eat(){
println(name+" is eating,he is "+age+" years old")
}
}*/
/*open class person {//继承+open,class为类,open叫做允许这个类去继承,
var name =""
var age =0
fun eat(){
println(name+" is my name,he is "+age+" years old")
}
}*/
open class person(val name:String,val age:Int){
fun eat() {
println(name + " is my name,he is " + age + " years old")
}
}
fun main(){
val p=person("nie",18)
p.eat()
/*val p=person()
p.age=19
p.name="jack"
p.eat()*/
}
package com.example.myapplicationone
import kotlin.contracts.contract
/*class Student : person(){//“: person()”是继承person这个类的第二个条件
var sno=""
var grade =0
}
fun main(){
val s =Student()
s.name="nieyubao"
s.age=21
s.sno="yijian"
s.grade=15
s.eat()
println(s.sno+" 是我的昵称,he is "+s.grade+" years old")
}*/
/*class Student (val sno:String,val grade:Int):person(){ // 主构造函数一般不带参数,没有函数体的,
//要加函数体,要使用“init”这个关键字
init{
println(sno+" 是我的昵称,he is "+grade+" years old")
}
}*/
/*class Student (val sno:String,val grade:Int,name: String,age:Int):person(name,age){
//name前面不用加val定义,因为在person类中已经定义过了
}*/
class Student (val sno:String,val grade:Int,name: String,age:Int):person(name,age){ //主构造函数,每个次构造函数都必须通过this关键词调用主构建函数
constructor(name: String,age: Int): this("",0,name,age){} //次构建函数,关键词construtor
constructor():this("",0){}
}
/*class Student :person{//因为没有主构造函数,所以继承person类的时候不用加括号
constructor(name: String,age:Int): super(name, age){} //只有次构造函数,没有主构建函数,用关键词constructor.....super
}*/
/*class Student (name :String,age :Int):person(name,age),Study{//接口加接口的函数
override fun readbooks() {
println(name+"is reading")
}
//override fun dohomework() {
// println(name+"is doing homework.")
// }
}
/*fun main() {
//val a =Student("123654",5,"nie",18)
//val a=Student()
//val a=Student("nie",18)
val a=Student("niw",5)
//a.name="nie"
//a.age=18
println(a.name+" is eating,he is "+a.age+" years old,他是 ")//+a.*grade+"年级的学生,学号是"+a.sno)
}*/
fun main(){
val student=Student("jack",19)
doStudy(student)
}
fun doStudy(study: Study){
study.readbooks()
study.dohomework()
}*/