kotlin语言——类与继承学习笔记

这篇博客详细探讨了Kotlin语言中的类定义、构造函数、属性与方法、继承机制以及多态特性。通过实例解析,帮助读者深入理解Kotlin的面向对象编程概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()
}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值