• Kotlin(七) 接口


    接口是用于实现多态编程的重要组成部分。我们都知道,Java是单继承结构的语言,任何一个类最多只能继承一个父类,但是却可以实现任意多个接口,Kotlin也是如此。
     

    首先创建一个Study接口,在创建文件窗口选择“Interface”。


    然后在Study接口中添加几个学习相关的函数,注意接口中的函数不要求有函数体,代码如下所示:

    然后在Student类中,实现这个接口使用冒号,如果有继承父类,就使用逗号隔开就可以,如图:

    实现接口后,会强制实现接口中的方法,我们在实现的方法中打印两句话,然后在main()函数中调用一下,如图:

    运行结果如图:

    这样我们就将Kotlin中接口的用法基本学完了,是不是很简单?不过为了让接口的功能更加灵活,Kotlin还增加了一个额外的功能:允许对接口中定义的函数进行默认实现。其实Java在JDK 1.8之后也开始支持这个功能了,因此总体来说,Kotlin和Java在接口方面的功能仍然是一模一样的。

    下面我们学习一下如何对接口中的函数进行默认实现,修改Study接口中的代码,如下所示:

    然后删除Student中的doHomework函数,发现也不会报错,然后我们运行main函数,如图:

    现在你已经掌握了Kotlin面向对象编程中最主要的一些内容,接下来我们再学习一个和Java相比变化比较大的部分——函数的可见性修饰符。

    熟悉Java的人一定知道,Java中有publicprivateprotecteddefault(什么都不写)这4种函数可见性修饰符。Kotlin中也有4种,分别是publicprivateprotectedinternal,需要使用哪种修饰符时,直接定义在fun关键字的前面即可。下面我详细介绍一下Java和Kotlin中这些函数可见性修饰符的异同。

    首先private修饰符在两种语言中的作用是一模一样的,都表示只对当前类内部可见。public修饰符的作用虽然也是一致的,表示对所有类都可见,但是在Kotlin中public修饰符是默认项,而在Java中default才是默认项。前面我们定义了那么多的函数,都没有加任何的修饰符,所以它们默认都是public的。protected关键字在Java中表示对当前类、子类和同一包路径下的类可见,在Kotlin中则表示只对当前类和子类可见。Kotlin抛弃了Java中的default可见性(同一包路径下的类可见),引入了一种新的可见性概念,只对同一模块中的类可见,使用的是internal修饰符。比如我们开发了一个模块给别人使用,但是有一些函数只允许在模块内部调用,不想暴露给外部,就可以将这些函数声明成internal。关于模块开发的内容,我们会在本书的最后一章学习。

    表2.2更直观地对比了Java和Kotlin中函数可见性修饰符之间的区别。

    表2.2 Java和Kotlin函数可见性修饰符对照表

    修饰符

    Java

    Kotlin

    public

    所有类可见

    所有类可见(默认)

    private

    当前类可见

    当前类可见

    protected

    当前类、子类、同一包路径下的类可见

    当前类、子类可见

    default

    同一包路径下的类可见(默认)

    internal

    同一模块中的类可见

  • 相关阅读:
    深入理解Windows系统环境变量
    SpringBoot源码解读与原理分析(三十六)SpringBoot整合WebMvc(一)@Controller控制器装配原理
    CefSharp结合VUE3搭建网页资源下载器
    阿里云全站加速 DCDN 重磅发布!打造新一代加速引擎
    Android WMS——概述(一)
    支持对协议和会话分享动作进行授权,新增API Key白名单功能,JumpServer堡垒机v3.9.0发布
    JSD-2204-异常处理-SpringJDBC事务管理-Day14
    贪心算法求解活动安排问题
    TCP 报文各字段解析
    FreeFileSync开机实时自动同步文件
  • 原文地址:https://blog.csdn.net/pengguichu/article/details/133958127