Android-Kotlin-继承
上一篇博客 Android-Kotlin-配置/入门 配置好了 AndroidStudio Kotlin 的环境;
1.先看一个案例,子类使用到父类的资源 【案例一】
父类 张翠山:
package cn.kotlin.kotlin_oop03 /**
* 描述父对象:张翠山
*
* personDescribe 此人的简介 / var personDescribe:String 此String是Kotlin的
*
* 描述行为:gestAction 武功
*/ // 注意:⚠️ 必须此类默认是不被其他类继承的,如果想被其他类继承 需要加入 open 修饰
open class MyFatherClass { // 注意:⚠️ 必须此成员变量默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open var personDescribe:String = "义薄云天,大仁大义 ...." /**
* 显示个人简介
*/
// 注意:⚠️ 必须此方法默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open fun showPersonDescribe() {
println("张翠山-Father简介${personDescribe}")
} /**
* 张翠山的武功
*/
// 注意:⚠️ 必须此方法默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open fun gestAction() {
System.out.println("自创剑法,剑法厉害......")
} }
子类 张无忌:
package cn.kotlin.kotlin_oop03 class MyChildClass : MyFatherClass() {
}
测试 的 main方法:
package cn.kotlin.kotlin_oop03 fun main(args: Array<String>) { // 先打印父类的信息 张翠山
var myFatherClass = MyFatherClass()
myFatherClass.showPersonDescribe()
myFatherClass.gestAction() println("-----------------------") // 打印子类的信息 张无忌
var myChildClass = MyChildClass()
myChildClass.showPersonDescribe() // 调用此方法 由于子类没有此方法,会去往父类找 找到后调用
myChildClass.gestAction() // 调用此方法 由于子类没有此方法,会去往父类找 找到后调用
}
执行结果:
2.对以上案例一进行修改 【案例二】
父类 张翠山:
package cn.kotlin.kotlin_oop03 /**
* 描述父对象:张翠山
*
* personDescribe 此人的简介 / var personDescribe:String 此String是Kotlin的
*
* 描述行为:gestAction 武功
*/ // 注意:⚠️ 必须此类默认是不被其他类继承的,如果想被其他类继承 需要加入 open 修饰
open class MyFatherClass { // 注意:⚠️ 必须此成员变量默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open var personDescribe:String = "义薄云天,大仁大义 ...." /**
* 显示个人简介
*/
// 注意:⚠️ 必须此方法默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open fun showPersonDescribe() {
println("张翠山-Father简介${personDescribe}")
} /**
* 张翠山的武功
*/
// 注意:⚠️ 必须此方法默认是不被其他类使用的,如果想被其他类使用 需要加入 open 修饰
open fun gestAction() {
System.out.println("自创剑法,剑法厉害......")
} }
子类 张无忌:
package cn.kotlin.kotlin_oop03 class MyChildClass : MyFatherClass() { /**
* 显示个人简介
*/
// 重写父类的方法,需要写override
override fun showPersonDescribe() {
println("张无忌-Child简介${personDescribe}")
} /**
* 张无忌还在的武功
*/
// 注意:override代表 重写父类的方法
override fun gestAction() {
println("九阳神功,乾坤大挪移,龙爪手")
}
}
测试的main方法:
package cn.kotlin.kotlin_oop03 fun main(args: Array<String>) { // 先打印父类的信息 张翠山
var myFatherClass = MyFatherClass()
myFatherClass.showPersonDescribe()
myFatherClass.gestAction() println("-----------------------") // 打印子类的信息 张无忌
var myChildClass = MyChildClass()
myChildClass.showPersonDescribe()
myChildClass.gestAction()
}
执行的结果:
3.案例三,父类 子类 简单继承:
package cn.kotlin.kotlin_oop03 /**
* 描述父类
*/
// open 理解为对外暴露,其他地方可以继承
open class Father { // 定义描述性格的变量 注意:var kidney:String 此变量的String是Kotlin的
var kidney:String = "性格文静,热爱运动,喜欢学习" /**
* 描述武功的行为/方法
*/
// open 理解为对外暴露,其他地方可以调用
open fun showGest() {
println("武功平常,只能打打小混混")
}
} /**
* 描述子类
*/
class Child : Father() { /**
* 描述武功的行为/方法
*/
// override代表重写父类的方法
override fun showGest() {
println("拥有上乘武功,神照经,难遇敌手....")
} } /**
* main测试方法
*/
fun main(args: Array<String>) {
// 打印父类的信息
var f = Father();
println("父类的性格:${f.kidney}")
f.showGest() // 父类的武功 println("-------------------------------------------") // 打印子类的信息
var c = Child();
println("子类的性格:${c.kidney}")
c.showGest() // 子类的武功 println("-------------------------------------------") // 父类的引用指向子类的对象 以前Java的写法 父类 fc = new 子类();
var fc:Father = Child()
fc.showGest()
}
执行结果:
Android-Kotlin-继承的更多相关文章
- Android Kotlin Jetpack Compose UI框架 完全解析
前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...
- Android Kotlin协程入门
Android官方推荐使用协程来处理异步问题.以下是协程的特点: 轻量:单个线程上可运行多个协程.协程支持挂起,不会使正在运行协程的线程阻塞.挂起比阻塞节省内存,且支持多个并行操作. 内存泄漏更少:使 ...
- Android Kotlin Annotation Processer
Annotation Processer 注解处理器(Annotation Processer)是javac内置的注解处理工具,可以在编译时处理注解,让我们自己做相应的处理.比如生成重复度很高的代码, ...
- Kotlin 继承
Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: class Example // 从 Any 隐式继承 Any 默认提供了三个函数: equals() ...
- Android style 继承
style作用在单个视图或控件上,抽取共有的属性,实现复用. style的继承有两种方式: 通过parent标识父style <style name="GreenText" ...
- Android Kotlin —— 语言结合
2017 Google I/O 大会开始就宣布,将Kotlin语言作为安卓开发的一级编程语言. Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发. Ko ...
- Android Kotlin适用小函数
都是一些Android适用的Kotlin小函数. 1.点击空白隐藏键盘 //点击空白隐藏键盘 override fun onTouchEvent(event: MotionEvent): Boolea ...
- Android单独继承View类来实现自定义控件
一个单独继承view类来实现自定义控件,在该方法中,需要重写ondraw方法来绘制自己所需要的控件,下面也以一个简单的例子来说明如何实现自定义控件.该方法可以实现所需要的所有的自定义控件. 属性文件中 ...
- Android -------- kotlin插件神器Json直接生成javaBean
这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开 ...
- Kotlin继承与重写重要特性剖析
继续Kotlin的面向对象之旅. 继承: 在Java中我们知道除了final类不能被继承,其它的情况都是可以被继承的,而在Kotlin中的规则是这样的:“在Kotlin中,所有类在默认情况下都是无法被 ...
随机推荐
- Lazarus下面的javascript绑定另外一个版本bug修正
Lazarus下面的javascript绑定另外一个版本bug修正 从svn 检出的代码有几个问题 1.fpcjs.pas 单元开始有 {$IFDEF FPC} {$MODE delphi} {$EN ...
- Centos7 开启vsftpd
Centos 1.开启DNS 可yum install (操作后要关闭) # vi /etc/resolv.conf# (INSERT)nameserver 8.8.8.8# (INSERT)表示按I ...
- redis在游戏服务器中的使用初探(三) 信息存储
摘要: 搭建了服务器环境 有了客户端 我们来假想下以下应用场景:我们简单举个实例来描述下Hash的应用场景,比如我们要存储一个用户信息对象数据,包含以下信息:用户ID,为查找的key,存储的value ...
- 安装ADT和ADK到eclipse
1.安装好JDK后,配置一下环境变量: 为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH.下面是这三个变量的设置防范. JAVA_HOME ...
- 【Apache】Apache服务的安装(一)
Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行 ...
- ueditor 上传图片
ueditor在配置图片,附件上传 首先,是以web项目为基础的,需要安装好eclipse以及tomcat 其次,需要下载ueditor(可去百度官网下载 http://ueditor.baidu. ...
- Java第15章笔记
字符串的概述 1.什么是字符串:零个或多个字符组成的有限序列 2.如何使用字符串:(使用字符串分为两步) 1)定义并初始化字符串 2)使用字符,对字符串进行一些处理 ...
- mysql explain中的type列含义和extra列的含义
很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是“访问类型”,更通俗一点就是: ...
- 别人的Linux私房菜(3)主机规划与磁盘分区
磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...
- 34、iOS App图标和启动画面尺寸
注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone ...