Kotlin之子类和子类型

Android  Kotlin  2024年10月13日 am8:24发布1周前更新 91es.com站长
20 1 0

前言

简单记录下一下Kotlin子类子类型的相关知识,方便自己查阅。

小结

  1. 子类是继承的概念,如果B继承A,则B就是A的子类。

  2. 如果需要使用类型A的变量时,可以使用类型B的变量来代替,则此时类型B就是A的子类型。

在需要使用时,用子类去替代父类,此时子类就是父类的子类型。

正文

子类是继承的概念,如果B继承A,则B就是A的子类。如果需要使用类型A的变量时,可以使用类型B的变量来代替,则此时类型B就是A的子类型。

一般情况下,编程语言只考虑了子类关系,子类说明是一个新类继承了父类,而子类型则是强调了新类具有父类一样的行为,这个行为不一定是继承。

继承与子类型

如果B类是A类的子类,则B就是A的子类型。当新类的行为与父类完全一致,在任何使用父类的场合,新类都表现一致的行为,此时可以使用继承。

open class Animal { 
    fun bathe() { 
        println(" 洗澡…") 
    } 
}  
class Cat : Animal() 
fun work(animal: Animal): Unit { 
    animal.bathe() 
} 
var cat = Cat() 
work(cat) 
  1. Cat继承Animal,也就是说Cat是Animal的子类。

  2. 然后work()中传入cat,而且可以运行成功,说明Cat类是Animal类的子类型。

如果A类不是B类的子类型,则不可以代替B类做一些事情。

接口与子类型

如果B类实现了接口A,则B类就是接口A的子类型,例如String类实现了CharSequence接口,String类就是接口CharSequence的子类型。

参考文章

  1. 《Kotlin从基础到实战》

 历史上的今天

  1. 2021: 冰心 : 一日的春光(0条评论)
  2. 2019: 川端康成:花未眠(0条评论)
  3. 2018: apache开启gzip压缩(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

1 条评论

  • 91es.com站长
    91es.com站长 管理员

    草率了没记录完

    广东省深圳市
    回复

随机推荐

蒋勋 : 孤独的乐趣

与孤独相处的时候,可以多一点思维的空间,生命的过程会不会更细腻一点?——蒋勋禅宗有一则有趣的故事,小徒弟整天跟老师父说:“我心不安,我心不安。”他觉得心好慌,上课没有心上课,做功课没有心做功课,问老师父到底该怎么办?师父拿出一把刀,说:“心拿出来,我帮你安一安。”心一直在自己身上,心会不安,是被...

open failed EACCES (Permission denied)

前言最近Android 10上读取文件时,出现如下异常:03-27 01:07:14.882 W/System.err(18732): java.io.FileNotFoundException: /storage/udisk2/wawa.mp3: open failed: EACCES (P...

Launcher2之拖拽事件

在分析Launcher2的拖拽(触摸)事件之前,我们必须知道Android中事件的分发、拦截和处理机制。有兴趣的可以看看《Android触摸事件简单分析》。不过,我这里再次简单总结一下:1、事件一定是先到达父控件上。2、事件简单来说可以分为三种:Down事件、Move事件、Up事件。...

JNI之类型介绍

前言之前对JNI基本的使用以及很熟悉了,但也是值得部分基础内容,这次就记录一下JNI中的基础类型,方便自己查阅。正文之前我们知道,JNI中是不认识java类型的(int好像认识,哈哈),比如我们之前的boolean在JNI是jboolean类型,之前涉及的类型不对,今天就深入了解一下其他类型...

[摘]Java去除字符串中的空格

前言这篇文件是关去除空格符的,之前也想整理一下,但迟迟没有,因此今天有空摘抄于此。下面只是用了Java提供的两种方式,一种只是去除文末或开头的trim(),另外一种是用replaceAll()正则表达式匹配。本文摘抄,具体原文链接在文末。正文String.trim()String.tr...

CountDownTimer音量值淡入淡出

前言有时候播放开始播放和暂停时,需要做一个淡入淡出的效果,要不然急速暂停或播放,容易出现尖锐的杂音。正文显示对MediaPlayer播放和暂停时音量淡入和淡出代码片段。隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读