android kotlin 基础复习 继承 inherit

1、新建文件kt

2、代码:

复制代码
/**用户基类**/
open class Person1(name:String){
    /**次级构造函数**/
    constructor(name:String,age:Int):this(name){
        //初始化
        println("-------基类次级构造函数---------")
        println("name:${name},age:${age}")
    }
}

/**子类继承 Person 类**/
class Student1:Person1{

    /**次级构造函数**/
    constructor(name:String,age:Int,no:String,score:Int):super(name,age){
        println("-------继承类次级构造函数---------")
        println("学生名: ${name}")
        println("年龄: ${age}")
        println("学生号: ${no}")
        println("成绩: ${score}")
    }
}


/**用户基类**/
open class Person2{
    open fun study(){       // 允许子类重写
        println("我毕业了")
    }
}

/**子类继承 Person 类**/
class Student2 : Person2() {

    override fun study(){    // 重写方法
        println("我在读大学")
    }
}

open class A {
    open fun f () { print("A") }
    fun a() { println("a") }
}

interface B {
    fun f() { println("B") } //接口的成员变量默认是 open 的
    fun b() { println("b") }
}

class C() : A() , B{
    override fun f() {
        super<A>.f()//调用 A.f()
        super<B>.f()//调用 B.f()
        super.b()
    }
}

fun main(args: Array<String>) {
    var s =  Student1("Runoob", 18, "S12345", 89)
    println("--------- s2 -------")
    val s2 =  Student2()
    s2.study()
    println("--------- c -------")
    val c =  C()
    c.f()
}

3、输出:

4、Student1也可以这样写:

复制代码
/**子类继承 Person 类**/
class Student1(name: String, age: Int, no: String, score: Int) : Person1(name, age) {

    init {
        println("-------继承类次级构造函数---------")
        println("学生名: ${name}")
        println("年龄: ${age}")
        println("学生号: ${no}")
        println("成绩: ${score}")
    }
}

5、说明:

oop中,一般抽象出共同的特性形成一个类,比如person有一个name。

student继承了以后,也具有了这个属性name,然后还可以增加属于自己的属性,形成一个更加具

体的类。比如:只有学生才有学生号、成绩等。

相关推荐
HLC++5 分钟前
Linux的进程间通信
android·linux·服务器
爱笑鱼3 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼4 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
btown5 小时前
Kotlin 版 MyBatis-Plus 查询优雅解决方案
kotlin
壮哥_icon5 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
用户69371750013846 小时前
Claude Code终端日志Token占用实测:一个过滤器砍掉60%-90%
android·前端·后端
蝉蜕日记6 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
吐了啊取名字太难7 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
小二·7 小时前
车载数字座舱实战:用魔珐星云打造下一代智能驾乘助手(附 Android/Kotlin 完整代码)
开发语言·kotlin
阿pin8 小时前
Android随笔-Retrofit
android·retrofit