上一篇博客 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-继承的更多相关文章

  1. Android Kotlin Jetpack Compose UI框架 完全解析

    前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...

  2. Android Kotlin协程入门

    Android官方推荐使用协程来处理异步问题.以下是协程的特点: 轻量:单个线程上可运行多个协程.协程支持挂起,不会使正在运行协程的线程阻塞.挂起比阻塞节省内存,且支持多个并行操作. 内存泄漏更少:使 ...

  3. Android Kotlin Annotation Processer

    Annotation Processer 注解处理器(Annotation Processer)是javac内置的注解处理工具,可以在编译时处理注解,让我们自己做相应的处理.比如生成重复度很高的代码, ...

  4. Kotlin 继承

    Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: class Example // 从 Any 隐式继承 Any 默认提供了三个函数: equals() ...

  5. Android style 继承

    style作用在单个视图或控件上,抽取共有的属性,实现复用. style的继承有两种方式: 通过parent标识父style <style name="GreenText" ...

  6. Android Kotlin —— 语言结合

    2017 Google I/O 大会开始就宣布,将Kotlin语言作为安卓开发的一级编程语言.        Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发.   Ko ...

  7. Android Kotlin适用小函数

    都是一些Android适用的Kotlin小函数. 1.点击空白隐藏键盘 //点击空白隐藏键盘 override fun onTouchEvent(event: MotionEvent): Boolea ...

  8. Android单独继承View类来实现自定义控件

    一个单独继承view类来实现自定义控件,在该方法中,需要重写ondraw方法来绘制自己所需要的控件,下面也以一个简单的例子来说明如何实现自定义控件.该方法可以实现所需要的所有的自定义控件. 属性文件中 ...

  9. Android -------- kotlin插件神器Json直接生成javaBean

    这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开 ...

  10. Kotlin继承与重写重要特性剖析

    继续Kotlin的面向对象之旅. 继承: 在Java中我们知道除了final类不能被继承,其它的情况都是可以被继承的,而在Kotlin中的规则是这样的:“在Kotlin中,所有类在默认情况下都是无法被 ...

随机推荐

  1. php中static静态关键字的使用方法和应用场景

    php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的 ...

  2. Ubunton安装mysql

    #手下下载tar.gz包#首先手工建立mysql用户和用户组 > groupadd mysql > useradd -r -g mysql mysql#然后就是安装的解压 编译安装 > ...

  3. linux ubuntu R 无法安装rggobi包的原因及解决方案

    错误信息 Package'libxml-2.0',requiredby'ggobi',notfound     错误原因 ggobi缺乏libxml依赖 解决方案 sudo apt install l ...

  4. Armadillo installation

    1.dependencies sudo apt-get install libopenblas-devsudo apt-get install liblapack-devsudo apt-get in ...

  5. springMVC学习一 工作机制

    springMVC下面的四大组件: (1)DispatcherServlet : 前端控制器,接收所有请求 ,并把请求路径和请求参数解析出来,本质是一个servlet在web.xml中配置 (如果配置 ...

  6. MySQL数据库innodb_rollback_on_timeout默认值的危害?

    http://www.ywnds.com/?p=9560 一.innodb_rollback_on_timeout变量 有时侯会发生事务超时的情况,MySQL会返回类似这样的错误:   1 ERROR ...

  7. python中的特殊成员

    python中的特殊成员: 小甲鱼论坛总结

  8. static关键字的功能

    转载:https://blog.csdn.net/guotianqing/article/details/79828100 C语言&C++ 1.局部变量 如果在一个函数内部定义了一个静态变量, ...

  9. springboot mybatis 分页整合

    spring boot 整合mybatis ,分两块mybatis 整合,分页整合.   1.pom文件增加 <dependency> <groupId>org.mybatis ...

  10. 第15章:MongoDB-聚合操作--聚合管道--$match

    ①$match 用于对文档集合进行筛选,里面可以使用所有常规的查询操作符. 通常会放置在管道最前面的位置,理由如下: 1:快速将不需要的文档过滤,减少后续操作的数据量 2:在投影和分组之前做筛选,查询 ...