鱼C论坛

 找回密码
 立即注册
查看: 2577|回复: 0

[技术交流] kotlin基础之类与对象(四)

[复制链接]
发表于 2017-11-21 06:24:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
类的属性也可以像java一样有geter和seter,其实就是一种在类里设置属性如何设置和获取的方式如:
  1. class City{
  2.     var name:String=""
  3.         get() {
  4.             return field
  5.         }
  6.         set(value) {
  7.             if (value.isNotBlank()){
  8.                 field=value
  9.             }
  10.         }
  11.     var population:Int=100_000_000
  12. }

  13. fun main(args: Array<String>) {
  14.     var a=City()
  15.     a.name="Japan"
  16.     a.name=" berlin   "
  17.     println(a.name)
  18. }
复制代码

这里面field就是指name,输出结果为:
berlin

还有一种接口类:
  1. interface Animal{
  2.     fun scream():String
  3. }
  4. interface Move{
  5.     fun run()
  6. }
  7. class Dog():Animal,Move{
  8.     override fun scream():String{
  9.         return "汪汪"
  10.     }

  11.     override fun run() {
  12.         println("狗在跑")
  13.     }
  14. }

  15. fun main(args: Array<String>) {
  16.     Dog().run()
  17.     print(Dog().scream())
  18. }
复制代码

这是Dog继承了两个接口,必须实现每个接口里的方法才行。接口不允许有构造器,输出结果为:
狗在跑
汪汪


还有一种叫抽象类,跟接口差不多,就是他能有构造器:
  1. interface Animal{
  2.     fun scream():String
  3. }
  4. interface Move{
  5.     fun run()
  6. }
  7. class Dog():Animal,Move,Drink(){
  8.     override fun scream():String{
  9.         return "汪汪"
  10.     }

  11.     override fun run() {
  12.         println("狗在跑")
  13.     }
  14.     override fun drink(){
  15.         println("Drink"+water)
  16.     }
  17. }
  18. abstract class Drink(var water:String="water"){
  19.     abstract fun drink()
  20. }
  21. fun main(args: Array<String>) {
  22.     Dog().drink()
  23. }
复制代码

抽象类里如果想要复写的方法必须加上abstract关键字,输出结果为:
Drinkwater

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 11:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表