Kotlin开发安卓APP笔记-类和对象(2)

来源:互联网 发布:跨越百年的美丽 知乎 编辑:程序博客网 时间:2024/06/07 01:03

上一篇Kotlin开发安卓APP笔记-类和对象(1)

修饰符

Kotlin的修饰符包括包括类修饰符classModifier 和访问修饰符accessModifier:

类修饰符classModifier–标示类本身特性

  abstract //抽象类标示    final  //标示类不可继承,默认属性  enum  //标示类为枚举  open  //类可继承,类默认是final的  annotation  //注解类

访问修饰符accessModifier–类属性的访问权限修饰符

  private //仅在同一个文件中可见  protected //同一个文件中或子类可见  public //所有调用的地方都可见  internal //同一个模块中可见

继承

继承(inheritance)是面向对象的重要概念。继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式。我们在组合(composition)中看到,组合是重复调用对象的功能接口。我们将看到,继承可以重复利用已有的类的定义。
在Kotlin中所有的类都有一个默认的父类Any,类似于Java中的Object。但不是java.lang.Object
Any提供默认的三个函数equals()hashCode()toString()

class Demo //隐式继承Any

显示继承:

open class Base()class Demo() : Base()

继承声明

在类的构造函数之后使用 : 标示继承:

class Demo(name:String,age:Int):Base(name,age){}

当类未声明构造函数时,继承其他类时,也不需要在primary constructor中显示的声明构造函数,必须在secondary constructor中显示调用父类构造函数,若父类有多个构造函数,可选择其一进行调用:

/**用户基类**/open class Base(name:String){    /**secondary constructor**/    constructor(name:String,age:Int):this(name){        //初始化    }}/**子类继承User类**/class Demo:Base{    /**构造函数**/    constructor(name:String):super(name){    }    /**另外一个构造函数**/    constructor(name:String,age:Int):super(name,age){    }}

所有类定义时默认是final属性,不可被继承。若需要继承,使用open关键字进行修饰。

方法重载

方法默认是final的,不可被子类重载,若需要被重载,使用关键词 open 进行修饰,子类重载方法使用 override 关键词:

open class Animal{    open fun eat(){}    fun run(){}}class Dog:Animal{    override fun eat(){}}

override修饰的方法,默认是可以被继承的。若希望不被继承,可以使用 final 关键词修饰。

final override fun fly(){} 

重载规则

当类同时继承类和实现接口,且有相同方法,且相同方法都有实现时,需要在重载方法中调用所继承的方法,使用关键词 super ,T表示所继承或实现的接口(下一篇写接口,看不懂的可以先看看下一篇,或者利用百度谷歌查阅资料):

open class Animal{    open fun eat(){}}interface Eating{    fun start(){}}class Dog:Animal(),Eating{    override fun study(){        super<User>.eat()         super<Reading>.start() //与上者至少二选其一    }}

当接口未实现方法时,默认为父类User的study方法,不需要调用所继承的方法:

interface Eating{    fun start()}class Dog:Animal(),Eating{    override fun eat(){        //do nothing    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发了后才知道顺丰快递到不了怎么办 三鹰之森吉卜力美术馆没票了怎么办 网贷平台借款如果还找你要钱怎么办 网贷要钱威胁成精神病怎么办 手机清除数据后忘了帐号密码怎么办 拼多多改了标题排名降了怎么办 16g的苹果手机内存不够怎么办 魅族手机没电关机充不进电怎么办 淘宝上买电器售后得不到处理怎么办 苏宁易购物流漏送货已签收怎么办 大件包裹快递快递员不送上楼怎么办 滴滴车主提现忘记登录密码怎么办 荣耀6玩游戏不卡但是闪退怎么办 qq扫码允许别人电脑登录怎么办 药店被举卖假药药检局没查到怎么办 苹果手机连接汽车点了不信任怎么办 装修的化妆品柜台与图纸不合怎么办 买手机邮到了是假手机怎么办 京东白条分期还款第一期逾期怎么办 快递电话留错了在派件怎么办 如果在派件途中客户电话有误怎么办 在派件途中客户电话有误怎么办 成立售电公司后供电公司怎么办 新买的洗衣机外壳坏了怎么办 京东过了7天退货怎么办 同款衣服比京东便宜怎么办 国美不让休班还不给加班钱怎么办 在国美电器买贵商品怎么办 给民俗差评老板骂你怎么办 华为p10后置摄像头调黑了怎么办 美图m6手机相机拍照模糊该怎么办 美图t8用久了卡怎么办 美图m4手机开不开机怎么办 比亚迪m6冷凝器散热不好怎么办 深圳市小汽车摇号审核没通过怎么办 扫码开门售货机拿了不给钱怎么办 预付卡办完后对方不愿退款怎么办 海尔88u52显示內存不足怎么办 京东账号绑定的手机好不用了怎么办 京东账号换手机了手机号没变怎么办 京东发票的号和手机对不起来怎么办