当我们继承类的时候,统一使用any这个超类,他是没有任何类型的,所有类都使用这个超类。 需要继承的方法需要加上open关键词,无论是类,还是函数。 ---------- open class name{ open val name_1:Int=123 open val name_2:String="测试" //函数 open fun name_main(){ println(name_1) } } //继承这个类,他需要采用:这个符号 class yu:name(){ } fun main(){ yu().name_main() } main() ---------- 继承了name这个类,却没有其他代码构造,这就是继承的好处。 没有加上open关键词的方法,即使继承了那个类,依旧会无法使用,所以需要继承的方法务必加上open。 // 这里值得注意的是:Kotlin使用继承是使用`:`符号,而Java是使用extends关键字 ---------- 这里加上之前文章的辅助构造类方法,constructor。 继承类有两个区别,一个是主构造函数,一个是辅助构造函数,也就是前文提过的constructor ,倘若需要继承这个函数,需要申明super这个关键字。 如:constructor(context: Context) : super(context) 后面的文章更新再说明这个,我的书明天就到了。 // 注意,`final`修饰符在编辑器中是灰色的,因为Kotlin中默认的类默认是final的 class A{} 等价于 final class A{} ---------- // 这里使用final修饰符修饰该方法,禁止覆盖掉类A的foo()函数 final override fun foo(){} 如:final override fun name_tr(){ println(name_2) } ---------- 在文章的开头提到了多态这个特性,方法的重载其实主要体现在这个地方。即函数名相同,函数的参数不同的情况。这一点和Java是相同的 ---------- 重写属性和重写方法其实大致是相同的,但是属性不能被重载。 重写属性即指:在基类中声明的属性,然后在其基类的实现类中重写该属性,该属性必须以override关键字修饰,并且其属性具有和基类中属性一样的类型。且可以重写该属性的值(Getter) 如: override fun name_tr(){ println("重载的主方法") } 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 可以根据自己的需要来重写部分方法 ---------- Loading... 当我们继承类的时候,统一使用any这个超类,他是没有任何类型的,所有类都使用这个超类。 需要继承的方法需要加上open关键词,无论是类,还是函数。 ---------- open class name{ open val name_1:Int=123 open val name_2:String="测试" //函数 open fun name_main(){ println(name_1) } } //继承这个类,他需要采用:这个符号 class yu:name(){ } fun main(){ yu().name_main() } main() ---------- 继承了name这个类,却没有其他代码构造,这就是继承的好处。 没有加上open关键词的方法,即使继承了那个类,依旧会无法使用,所以需要继承的方法务必加上open。 // 这里值得注意的是:Kotlin使用继承是使用`:`符号,而Java是使用extends关键字 ---------- 这里加上之前文章的辅助构造类方法,constructor。 继承类有两个区别,一个是主构造函数,一个是辅助构造函数,也就是前文提过的constructor ,倘若需要继承这个函数,需要申明super这个关键字。 如:constructor(context: Context) : super(context) 后面的文章更新再说明这个,我的书明天就到了。 // 注意,`final`修饰符在编辑器中是灰色的,因为Kotlin中默认的类默认是final的 class A{} 等价于 final class A{} ---------- // 这里使用final修饰符修饰该方法,禁止覆盖掉类A的foo()函数 final override fun foo(){} 如:final override fun name_tr(){ println(name_2) } ---------- 在文章的开头提到了多态这个特性,方法的重载其实主要体现在这个地方。即函数名相同,函数的参数不同的情况。这一点和Java是相同的 ---------- 重写属性和重写方法其实大致是相同的,但是属性不能被重载。 重写属性即指:在基类中声明的属性,然后在其基类的实现类中重写该属性,该属性必须以override关键字修饰,并且其属性具有和基类中属性一样的类型。且可以重写该属性的值(Getter) 如: override fun name_tr(){ println("重载的主方法") } 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 可以根据自己的需要来重写部分方法 ---------- 最后修改:2021 年 04 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏