Kotlin编程之伴生对象,抽象类,密封类
2017-05-31 21:10
316 查看
Kotlin编程相关知识点介绍:
Kotlin编程之使用Intellij IED和了解源文件(.kt)
Kotlin编程之类的介绍和使用
Kotlin编程之类的属性
Kotlin编程之方法
Kotlin编程之父类和继承父类
Kotlin编程之接口和实现接口
本篇概括:
伴生对象
抽象类
密封类
输出结果:
可知:
伴生对象可以实现静态调用,通过
输出结果:
可知:
抽象类和抽象方法是默认open关键字修饰的
抽象类有抽象方法和方法的实现,可以有成员属性
在一个源文件(.kt),编写以下代码:
输出如下:
Kotlin编程之使用Intellij IED和了解源文件(.kt)
Kotlin编程之类的介绍和使用
Kotlin编程之类的属性
Kotlin编程之方法
Kotlin编程之父类和继承父类
Kotlin编程之接口和实现接口
本篇概括:
伴生对象
抽象类
密封类
伴生对象
package com.xingen.kotlin.day2017531 fun main(args: Array<String>) { Test.instance.test() Test.test1() } class Test { fun test() { println("伴生对象的静态调用对象,通过对象再调用方法") } companion object Factory{ // 伴生对象 var instance =Test() fun test1(){ println("伴生对象的静态调用方法") } } }
输出结果:
伴生对象的静态调用对象,通过对象再调用方法 伴生对象的静态调用方法
可知:
伴生对象可以实现静态调用,通过
类名.属性名或者
类名.方法名进行调用。
抽象类
package com.xingen.kotlin.day2017531 fun main(args: Array<String>) { Test.instance.test() Test.instance.test1() } /** * 定义一个抽象类 * * 1. 抽象类中有抽象方法,方法的实现。 * 2. 抽象类和抽象方法是默认open关键字修饰的 */ abstract class TestAbstract{ var v="抽象类中属性" abstract fun test() fun test1(){ println("抽象类中方法的实现") } } class Test :TestAbstract(){ override fun test() { println("一个抽象类的子类中使用 $v") } companion object Factory{//伴生对象 var instance :TestAbstract=Test() } }
输出结果:
一个抽象类的子类中使用 抽象类中属性 抽象类中方法的实现
可知:
抽象类和抽象方法是默认open关键字修饰的
抽象类有抽象方法和方法的实现,可以有成员属性
密封类
通常与When语句一起使用,确保声明到所有的情形,不需要使用else语句。在一个源文件(.kt),编写以下代码:
package com.xingen.kotlin /** * Created by ${新根} on 2017/5/24 0024. * 博客:http://blog.csdn.net/hexingen */ fun main(str: Array<String>) { test( BaseClass.Test1() ) test( BaseClass.Test2() ) test( BaseClass.Test3 ) } /** * 使用when表达式 */ fun test(instance: BaseClass)=when(instance){ is BaseClass.Test1-> instance.test() is BaseClass.Test2-> instance.test() is BaseClass.Test3->instance.test() } /** * * sealed修饰符修饰密封类。 * * 密封类内部含有多个子类。 */ sealed class BaseClass { class Test1 : BaseClass() { override fun test() { println("Test1实例") } } class Test2 : BaseClass() { override fun test() { println("Test2实例") } } object Test3 : BaseClass() { override fun test() { println("Test3实例") } } open fun test() { println("BaseClass实例") } }
输出如下:
Test1实例 Test2实例 Test3实例
相关文章推荐
- [kotlin]面向对象之接口、抽象类、伴生对象(Companion)
- Kotlin编程之扩展属性和扩展伴生对象
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- 跟着百度学PHP[4]OOP面对对象编程-12-抽象类
- Kotlin学习之伴生对象
- PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程
- Kotlin基础教程之伴生对象,getter,setter,内部,局部,匿名类,可变参数
- Kotlin学习(四)—— 类和对象,继承,覆盖,抽象类,属性和字段,接口,可见性修饰符,扩展
- Kotlin编程之类、对象和接口
- Kotlin伴生对象与静态成员
- Kotlin 创建接口或者抽象类的匿名对象
- Kotlin教程学习-伴生对象,getter,setter,内部,局部,匿名类,可变参数
- Kotlin 博客 companion object 伴生对象,getter,setter,内部,局部,匿名类,可变参数
- kotlin基础4---面向对象抽象类和抽象方法
- 安卓利用kotlin的变长参数与伴生对象写出java可以调用的静态方法
- Kotlin的伴生对象的理解
- scala面向对象编程 - 类、抽象类、伴生对象、继承、类的构造方法
- kotlin基础5---面向对象抽象类和接口的不同
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- Kotlin编程之对象的表达式和声明