首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )

【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )

作者头像
韩曙亮
发布2023-03-27 18:58:59
发布2023-03-27 18:58:59
1K0
举报

文章目录

I . Kotlin 接口定义与实现

1 . Kotlin 定义接口 :

代码语言:javascript
复制
/**
 * 定义接口
 */
interface IStudent{

    //声明抽象方法
    fun study()

}

2 . Kotlin 接口实现 :

代码语言:javascript
复制
/**
 * 如果类实现一个接口 , 那么必须全部实现接口中的方法
 * 抽象类实现一个接口 , 可以不实现接口中的方法
 */
class MaleStudent : IStudent{

    /**
     * 实现 / 重写抽象方法 需要在方法关键字 fun 前添加 override 关键字
     */
    override fun study() {
        println("男学生学习")
    }

}

3 . 测试接口 及 实现类 :

代码语言:javascript
复制
//创建接口的实现类对象
var maleStudent : MaleStudent = MaleStudent()

//男学生学习
maleStudent.study()
II . Kotlin 抽象类定义

定义 Kotlin 抽象类 :

代码语言:javascript
复制
/**
 * 抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 )
 */
abstract class Human ( var name:String , var age:Int ) {

    /**
     * 定义抽象方法 , 类必须是抽象类
     */
    abstract fun say();

}
III . Kotlin 类继承抽象类并实现接口

1 . Kotlin 类继承抽象类并实现接口 :

代码语言:javascript
复制
/**
 * 接口 : 表现事物的能力 , 只能有方法
 * 抽象类 : 表现事物的本质 , 可以有成员和抽象方法
 *
 * 该类继承抽象类 , 实现接口
 */
class HumanStudent(name : String, age : Int) : Human(name , age), IStudent{

    override fun say() {
        println( "" + age + "岁的人类学生" + name + "在说话")
    }

    override fun study() {
        println("人类学生在学习")
    }

}

2 . 测试 接口 + 抽象类 : HumanStudent 继承了抽象类 , 实现类接口 ;

代码语言:javascript
复制
// 测试 接口 + 抽象类

//HumanStudent 继承了 Human 抽象类 , 实现了 Student 接口
var humanStudent : HumanStudent = HumanStudent("Tom", 18);

//18岁的人类学生Tom在说话
humanStudent.say();

//人类学生在学习
humanStudent.study();
IV . Kotlin 接口与抽象类子类测试

1 . 接口 : 表现事物的能力 , 只能有方法

2 . 抽象类 : 表现事物的本质 , 可以有成员和抽象方法

代码语言:javascript
复制
// 3 . 将 接口 实现类放到集合中

var students = listOf<IStudent>(maleStudent, humanStudent);

//循环遍历集合 
for(student in students){
    if(student is Human){
        //18岁的人类学生Tom在说话
        student.say()
    }
    if(student is IStudent){
        //人类学生在学习
        student.study()
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
    • I . Kotlin 接口定义与实现
    • II . Kotlin 抽象类定义
    • III . Kotlin 类继承抽象类并实现接口
    • IV . Kotlin 接口与抽象类子类测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档