今天来看 介面与抽象类别 / 泛型 / 扩充
Interface 介面,像是一个SOP或是流程, 大家使用後都一定要照着SOP/流程自己实作一次
var mIronPlayer = ironPlay("Kotlin Android 30天,从 0 到 ML")
mIronPlayer.showTitle()
var mWebinarSpeaker = webinarSpeaker("Kotlin Android 30天,从 0 到 ML 参赛心得")
mWebinarSpeaker.showTitle()
// Interface like SOP or flow
interface TitleInterface{
fun showTitle()
}
class ironPlay(title:String):TitleInterface{
var mTitle = title
override fun showTitle() {
//TODO("Not yet implemented")
println("ironPlay Tilte = $mTitle")
}
}
class webinarSpeaker(title:String):TitleInterface{
var mTitle = title
override fun showTitle() {
//TODO("Not yet implemented")
println("webinarSpeaker Tilte = $mTitle")
}
}
abstract class(抽象类别) 不能直接被实例化,只能被类别继承。
var mWebSpeaker = webSpeaker("Kotlin Android 30天,从 0 到 ML 辛苦谈")
mWebSpeaker.showTitle()
abstract class seminarSpeakers (title:String){
abstract fun showTitle()
}
class webSpeaker(title:String): seminarSpeakers(title) {
var mTitle = title
override fun showTitle() {
//TODO("Not yet implemented")
println("abstract Tilte = $mTitle")
}
}
扩充,不想用继承或是直接修改类别的话,可以使用扩充,通常用 T 来代表全部物件
var mAnySpeaker = anySpeaker(1234 )
mAnySpeaker.showTitle()
anyEventSpeaker(123456)
anyEventSpeaker("Kotlin Android 30天,从 0 到 ML 谈天说地")
println("Extensions Speaker Name = "+mWebSpeaker.getSpeakerName())
//Generic Classes
class anySpeaker<T>(title:T) {
var mTitle = title
fun showTitle() {
//TODO("Not yet implemented")
println("Generic class Tilte = $mTitle")
}
}
//Generic fun
fun <T> anyEventSpeaker(title:T) {
println("Generic fun Tilte = $title")
}
//扩充 Extensions
fun webSpeaker.getSpeakerName() = "Kevin"
执行结果:
https://kotlinlang.org/docs/interfaces.html
https://kotlinlang.org/docs/generics.html#declaration-site-variance
<<: DAY02 - 那些当年很想做但就是写不出来的Side Project...囧
>>: Ruby on Rails RESTful 网址设计
Git 基础篇 人生不能重来,但Git可以 什麽是git ? 分散式版本控制 使用 SHA1 杂凑演...
比较/关系 运算 用来比较两个数值大小关系的运算,运算的结果是一个布林值,当两者的大小关系成立时结果...
Raid可以理解为是将多个硬碟组合在一起,利用虚拟储存技术,形成一个硬碟阵列,用来提升储存空间和制造...
完赛感言 一如开赛宣言,今年原本打算挑战多组,包含影片组要来玩 switch 的 no code 游...
昨天做的验证只针对 Identity 系统,没有包含到我们的日志,如果在未登入状态下於网址列输入ht...