1.抽象类
抽象类是不可直接被实例化的,因为它有一部分属性和方法没有被完整的赋值和体现。也就是说,抽象类是在告诉要继承的类:我有一些方法和属性没有具体实现,我命令你去把它们弄完整
abstract
其中值得注意的是:抽象可以分为抽象类、抽象函数、抽象属性。而一个抽象类和普通类的区别在于抽象类除了可以有其自己的属性、构造函数、方法等组成部分,还包含了抽象函数以及抽象属性。
抽象类的规则
-
在Kotlin中的抽象类在顶层定义的时候只能使用public可见性修饰符修饰
-
抽象类中可以定义内部抽象类
-
只能继承一个抽象类
-
若要实现抽象类的实例化,需要依靠子类采用向上转型的方式处理
-
抽象类可以继承自一个继承类,即抽象类可以作为自类。不过,抽象类建议不用open修饰符修饰,因为可以复写抽象类的夫类的函数。
重写和重载
重写和重载有什么区别?
重写是写在两个类里的,它们是继承的关系
重载是在一个类中的,相同的方法名、不同的参数
重载和重写都是针对方法的,且方法名相同