Kotlin基础接口泛型

Posted 大雄童鞋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin基础接口泛型相关的知识,希望对你有一定的参考价值。

接口定义:Interface 接口名//各种属性或方法定义

//接口和泛型

interface IBaseDao<T> 

    val city : String
    get()  = "北京"

    var grade : Int

    fun <T>add(t : T)
    fun del(id: Int)
    fun update(id: Int, stu: Student)
    fun select()

//实现接口

 open   abstract class BaseDao<T> : IBaseDao<T>

      override fun update(id: Int, stu: Student) 
      

 

学生类:

class Student 
    private var name : String? = null
    private var score : String? = null
    private var grade : Int? = null

用户类:

class User 
    private var name : String? = null
    private var sex : String? = null
    private var age : Int? = null

//学生Dao

class StudentDao : BaseDao<Student>() 

    override fun del(id: Int) 
    

    //这里就可以直接使用当前对象了
    override fun <Student> add(t: Student) 

    

    override fun select() 
    

    override var grade: Int
        get() = 9
        set(value) 
            when (grade) 
                1 -> 
                    println("1岁")
                
                2, 3, 4 -> 
                    println("大于一岁")
                
                5 -> 
                    println("大于4岁")
                
            
        

    override fun update(id: Int, stu: Student) 
    

//用户Dao

class UserDao : BaseDao<User>() 
    override var grade: Int
        get() = 9
        set(value) 
            when (grade) 
                4 -> 
                    println("4")
                
                6,7,8,9 -> 
                    println("678")
                
                10,11 -> 
                    println("10")
                

            
        
    //这里就可以直接使用当前对象了
    override fun <User> add(t: User) 
    

    override fun del(id: Int) 
    

    override fun select() 
    

高级使用请参见:
https://www.jianshu.com/u/5509a21c1623

以上是关于Kotlin基础接口泛型的主要内容,如果未能解决你的问题,请参考以下文章

快速上手kotlin接口抽象类及泛型

Kotlin基础-泛型

Kotlin学习笔记——接口抽象类泛型扩展集合操作符与Java互操作性单例

Kotlin中接口抽象类泛型out(协变)in(逆变)reified关键字的详解

Kevin Learn Kotlin:泛型

Kotlin 泛型