您现在的位置是:首页 > 文章详情

Kotlin方法重载和覆写

日期:2018-04-01点击:362

一、很多人分不清方法的重载和方法的覆写
覆写:override是重写父类已经存在的方法
重载:Overloads是写一个与已经存在的方法的方法名相同的方法,已经存在的这个方法可以是从父类继承的,也可以是当前类已经存在的。简单说:名称相同、参数名不同的方法。

二、看一个方法重载的例子

package net.println.kotlin.chapter4 import java.util.ArrayList /** * @author:wangdong * @description:方法重载 */ class Overloads{ //方法名相同,参数不同 //返回值不能当区分方法是否相同 //默认参数0 //给java用的话,加 @JvmOverloads fun a(int: Int = 0):Int{ return int } fun a(string: String):Int{ return string.length } } fun main(args: Array<String>) { val overloads = Overloads() val int: Int = overloads.a() val integerList = ArrayList<Int>() integerList.add(23) integerList.add(233) integerList.add(243) integerList.add(235) integerList.add(5) integerList.add(50) integerList.add(500) println(integerList) //可以有效避免java中的bug //removeAt对应的是索引 integerList.removeAt(1) //remove对应的是list的元素是5 integerList.remove(5) println(integerList) }

三、看一个方法覆写的例子

package net.println.kotlin.chapter4 /** * @author:wangdong * @description: */ /** * 一个类想要被继承,必须先open * 一个方法想要被覆写,也必须先open * open class Person{ * open fun work() } */ /**定义一个人的抽象类*/ abstract class Person(open val age: Int){ abstract fun work() } /**定义一个工程师的类,继承人的抽象类*/ class engineer(age: Int): Person(age){ override val age: Int get() = 0 //覆写方法一定要加override关键字 override fun work() { println("我在写代码") } } /**定义一个医生的类,继承人的抽象类*/ class doctor(age: Int): Person(age){ override fun work() { println("我在给病人做手术") } } fun main(args: Array<String>) { val engineer = engineer(23) engineer.work() println("工程师" + engineer.age) val doctor = doctor(45) doctor.work() println("医生" + doctor.age) }
原文链接:https://yq.aliyun.com/articles/614574
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章