美文网首页
Kotlin 类2 - 抽象类与接口

Kotlin 类2 - 抽象类与接口

作者: ChenME | 来源:发表于2018-07-27 10:23 被阅读30次

Kotlin 类2 - 抽象类与接口


1. Kotlin 类、抽象类、接口的规则:

  1. 「单继承多现实」即一个类只可以继承一个父类,但可以实现多个接口;
  2. 「继承实现后使用」抽象类和接口不能直接创建对象,都需要被子类继承实现后,用子类进行创建;
  3. 父类(接口)变量可以接受子类(实现类)的实例赋值;

2. 接口

  • Kotlin 中,接口具有以下特征:
  1. 接口中可以定义属性,但是不能初始化,也不能有 getter/setter 方法,但是在它的实现类中必须被实现;
  2. 可以给接口函数创建默认实现(在它的实现类中可以不必实现该函数);
  3. 对于抽象函数,必须在它的实现类中给出该函数的实现;
interface A {

    /* 1. 接口中可以定义属性,但是不能初始化,也不能有 getter/setter 方法,但是在它的实现类中必须被实现;
     */
    var a: Int

    /* 2. 可以给接口函数创建默认实现(在它的实现类中可以不必实现该函数);
     */
    fun printA() {
        println("a --> $a")
    }

    /* 3. 对于抽象函数,必须在它的实现类中给出该函数的实现;
     */
    fun printA1()
}

/* A1. 接口A 的实现类必须实现其父接口已经定义过的 属性a;
 */
class implA(override var a: Int) : A {

    /* A3. 接口A 的实现类必须实现其父接口的 抽象函数printA1();
     */
    override fun printA1() {
    }
}

3. 抽象类

  • Kotlin 中,抽象类具有以下特征:
  1. 可以定义属性,同时属性也可以赋初始值;
  2. 可以创建函数以及函数体,也可以输出类所对应的属性;
  3. 与接口一样,对于抽象的函数,必须在其实现类中给出该函数的实现;
abstract class B {

    /* 1. 可以定义属性,同时属性也可以赋初始值;
     */
    var b = 10

    /* 2. 可以创建函数以及函数体,也可以输出类所对应的属性;
     */
    fun printB() {
        println(b)
    }

    /* 3. 与接口一样,对于抽象的函数,必须在其实现类中给出该函数的实现;
     */
    abstract fun printB1()
}

class implB : B() {

    /* B3. 抽象类B 的实现类必须实现其父类的 抽象函数printB1();
     */
    override fun printB1() {
    }

}

相关文章

  • Kotlin 类2 - 抽象类与接口

    Kotlin 类2 - 抽象类与接口 1. Kotlin 类、抽象类、接口的规则: 「单继承多现实」即一个类只可以...

  • About Kotlin-Kotlin中的类2

    About Kotlin(2) 继续昨天的部分。介绍Kotlin中的类。 Kotlin中的类 抽象类和接口 抽象类...

  • 抽象类和接口

    接口:代表的是事物的能力抽象类:反映的是事物的本质 kotlin中的接口 kotlin中的抽象类 kotlin中实...

  • Kotlin接口与SAM函数,以及可见性修饰符

    一、Kotlin接口 Kotlin 的接口可以既包含抽象⽅法的声明也包含实现。与抽象类不同的是,接口⽆法保存状态。...

  • Kotlin---接口与继承

    接口与抽象类的区别 同样在Kotlin中也有接口的概念,与Java不同的是,Kotlin中的接口可以定义变量,但是...

  • kotlin接口

    借鉴Kotlin中文站 接口 Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保...

  • kotlin中的面相对象

    目录 抽象类与接口 多态和接口代理 kotlin中接口函数冲突问题 类及其成员的可见性 object(单例模式) ...

  • Kotlin中的面向对象详解

    目录 抽象类与接口 多态和接口代理 kotlin中接口函数冲突问题 类及其成员的可见性 object(单例模式) ...

  • Kotlin:接口能包含属性和方法实现了

    一、接口定义 Kotlin的接口与Java 8类似,即包含抽象方法的声明,也包含实现; 与抽象类不同的是,接口无法...

  • Kotlin学习之抽象类和接口

    Kotlin学习之抽象类和接口 抽象类和接口是面向对象的高级特性。 一、抽象类 类和其中的某些成员可以声明为abs...

网友评论

      本文标题:Kotlin 类2 - 抽象类与接口

      本文链接:https://www.haomeiwen.com/subject/haswmftx.html