【Kotlin】Kotlin 抽象类与接口 ( 接口声明 | 接口实现 | 抽象类声明与实现 )
【摘要】
文章目录
I . Kotlin 接口定义与实现II . Kotlin 抽象类定义III . Kotlin 类继承抽象类并实现接口IV . Kotlin 接口与抽象类子类测试
...
I . Kotlin 接口定义与实现
1 . Kotlin 定义接口 :
/**
* 定义接口
*/
interface IStudent{
//声明抽象方法
fun study()
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
2 . Kotlin 接口实现 :
/**
* 如果类实现一个接口 , 那么必须全部实现接口中的方法
* 抽象类实现一个接口 , 可以不实现接口中的方法
*/
class MaleStudent : IStudent{
/**
* 实现 / 重写抽象方法 需要在方法关键字 fun 前添加 override 关键字
*/
override fun study() {
println("男学生学习")
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3 . 测试接口 及 实现类 :
//创建接口的实现类对象
var maleStudent : MaleStudent = MaleStudent()
//男学生学习
maleStudent.study()
- 1
- 2
- 3
- 4
- 5
II . Kotlin 抽象类定义
定义 Kotlin 抽象类 :
/**
* 抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 )
*/
abstract class Human ( var name:String , var age:Int ) {
/**
* 定义抽象方法 , 类必须是抽象类
*/
abstract fun say();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
III . Kotlin 类继承抽象类并实现接口
1 . Kotlin 类继承抽象类并实现接口 :
/**
* 接口 : 表现事物的能力 , 只能有方法
* 抽象类 : 表现事物的本质 , 可以有成员和抽象方法
*
* 该类继承抽象类 , 实现接口
*/
class HumanStudent(name : String, age : Int) : Human(name , age), IStudent{
override fun say() {
println( "" + age + "岁的人类学生" + name + "在说话")
}
override fun study() {
println("人类学生在学习")
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
2 . 测试 接口 + 抽象类 : HumanStudent 继承了抽象类 , 实现类接口 ;
// 测试 接口 + 抽象类
//HumanStudent 继承了 Human 抽象类 , 实现了 Student 接口
var humanStudent : HumanStudent = HumanStudent("Tom", 18);
//18岁的人类学生Tom在说话
humanStudent.say();
//人类学生在学习
humanStudent.study();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
IV . Kotlin 接口与抽象类子类测试
1 . 接口 : 表现事物的能力 , 只能有方法
2 . 抽象类 : 表现事物的本质 , 可以有成员和抽象方法
// 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()
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/104979893
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)