国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Kotlin 接口

cocopeak / 1388人閱讀

摘要:中的接口與類似,但是它允許有默認實現。這一點與有些相近,及以后,允許我們在接口中定義方法和方法。這與繼承中有多個相同方法的處理一樣。歡迎加入學習交流群,大家一起學習交流。

Kotlin 中的接口與Java類似,但是它允許有默認實現。這一點與Java 8有些相近,JDK8及以后,允許我們在接口中定義static方法和default方法。

interface MyInterface {
    fun method1();
    
    fun result():Int
    
    fun doIt(){
        print("do it")
    }
}

接口的實現

一個類或者對象可以實現一個或多個接口。

class DefaultImpl :MyInterface{
        override fun result(): Int {
            return 0;
        }

        override fun method1() {
           print("override method 1")
        }

}

接口中的屬性

接口中的屬性只能是抽象的,不允許初始化值
接口不會保存屬性值,實現接口時,必須重寫屬性

interface MyInterface{
    var name:String //name 屬性, 抽象的
}
 
class MyImpl:MyInterface{
    override var name: String = "runoob" //重載屬性
}

Demo

interface MyInterface {
    var name:String //name 屬性, 抽象的
    fun bar()
    fun foo() {
        // 可選的方法體
        println("foo")
    }
}
class Child : MyInterface {
    override var name: String = "runoob" //重寫屬性
    override fun bar() {
        // 方法體
        println("bar")
    }
}
fun main(args: Array) {
    val c =  Child()
    c.foo();
    c.bar();
    println(c.name)
 
}

輸出結果為:

foo
bar
runoob

函數重寫

實現多個接口時,可能會遇到同一方法繼承多個實現的問題。例如:

interface A {
    fun foo() { print("A") }   // 已實現
    fun bar()                  // 未實現,沒有方法體,是抽象的
}
 
interface B {
    fun foo() { print("B") }   // 已實現
    fun bar() { print("bar") } // 已實現
}
 
class C : A {
    override fun bar() { print("bar") }   // 重寫
}
 
class D : A, B {
    override fun foo() {
        super.foo()
        super.foo()
    }
 
    override fun bar() {
        super.bar()
    }
}
 
fun main(args: Array) {
    val d =  D()
    d.foo();
    d.bar();
}

輸出結果為:

ABbar

C 只實現了,只需要重寫抽象方法bar().而class D則實現了A,B,而A,B都有方法
foo(),bar(),所以都需要重寫,用以指定D如何實現。這與繼承中有多個相同方法的處理一樣。

歡迎加入學習交流群569772982,大家一起學習交流。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70567.html

相關文章

  • Kotlin + Spring Boot : 下一代 Java 服務端開發 》

    摘要:下一代服務端開發下一代服務端開發第部門快速開始第章快速開始環境準備,,快速上手實現一個第章企業級服務開發從到語言的缺點發展歷程的缺點為什么是產生的背景解決了哪些問題為什么是的發展歷程容器的配置地獄是什么從到下一代企業級服務開發在移動開發領域 《 Kotlin + Spring Boot : 下一代 Java 服務端開發 》 Kotlin + Spring Boot : 下一代 Java...

    springDevBird 評論0 收藏0
  • Android 開發學習 - Kotlin

    摘要:開發學習前言最近版本上線后手上沒有什么工作量就下來看看,以下為學習相關內容。用對象表達式和對象聲明巧妙的實現了這一概念。在中這就是或者叫類型系統致力與消滅異常。 Android 開發學習 - Kotlin 前言 - 最近版本上線后手上沒有什么工作量就下來看看 Kotlin ,以下為學習相關內容 。以下代碼的寫法存在多種,這里只列舉其一 單利 java 單例模式 &...

    jas0n 評論0 收藏0
  • SpringBoot 2.X Kotlin 系列之Reactive Mongodb 與 JPA

    摘要:一本節目標前兩章主要講了的基本操作,這一章我們將學習使用訪問,并通過完成簡單操作。這里有一個問題什么不選用數據庫呢答案是目前支持。突出點是,即非阻塞的。二構建項目及配置本章不在講解如何構建項目了,大家可以參考第一章。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 一、本節目標 前兩...

    MSchumi 評論0 收藏0

發表評論

0條評論

cocopeak

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<