文章目录
I . Kotlin 接口定义与实现
II . Kotlin 抽象类定义
III . Kotlin 类继承抽象类并实现接口
IV . Kotlin 接口与抽象类子类测试
I . Kotlin 接口定义与实现
1 . Kotlin 定义接口 :
/** * 定义接口 */ interface IStudent{ //声明抽象方法 fun study() }
2 . Kotlin 接口实现 :
/** * 如果类实现一个接口 , 那么必须全部实现接口中的方法 * 抽象类实现一个接口 , 可以不实现接口中的方法 */ class MaleStudent : IStudent{ /** * 实现 / 重写抽象方法 需要在方法关键字 fun 前添加 override 关键字 */ override fun study() { println("男学生学习") } }
3 . 测试接口 及 实现类 :
//创建接口的实现类对象 var maleStudent : MaleStudent = MaleStudent() //男学生学习 maleStudent.study()
II . Kotlin 抽象类定义
定义 Kotlin 抽象类 :
/** * 抽象类 : 只有抽象类中才能定义抽象方法 ( 与 Java 不同 ) */ abstract class Human ( var name:String , var age:Int ) { /** * 定义抽象方法 , 类必须是抽象类 */ abstract fun say(); }
III . Kotlin 类继承抽象类并实现接口
1 . Kotlin 类继承抽象类并实现接口 :
/** * 接口 : 表现事物的能力 , 只能有方法 * 抽象类 : 表现事物的本质 , 可以有成员和抽象方法 * * 该类继承抽象类 , 实现接口 */ class HumanStudent(name : String, age : Int) : Human(name , age), IStudent{ override fun say() { println( "" + age + "岁的人类学生" + name + "在说话") } override fun study() { println("人类学生在学习") } }
2 . 测试 接口 + 抽象类 : HumanStudent 继承了抽象类 , 实现类接口 ;
// 测试 接口 + 抽象类 //HumanStudent 继承了 Human 抽象类 , 实现了 Student 接口 var humanStudent : HumanStudent = HumanStudent("Tom", 18); //18岁的人类学生Tom在说话 humanStudent.say(); //人类学生在学习 humanStudent.study();
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() } }