1.普通类
Kotlin如同Java一样也拥有一个超类——Any(Java是Object),Any提供了3个方法:equals()、hashCode()和toString()。Kotlin中的类默认都是不可以继承的,如果想要继承一个类则需要添加关键字"open"。
open class Fruit(var area: String = "上海") {
//...
}
//父类Fruit已经在构造函数中声明了属性,子类就不需重复声明(不需要添加val/var)
class Apple(area: String = "陕西") : Fruit(area) {
}
kotlin中的权限修饰符与Java大体一样,除了private,protected,public外,又增加了一个internal修饰符。internal代表范围是只对本模块内部开放。
2.抽象类继承
抽象类的关键字是“abstract”,抽象类不能实例化,构造函数也不需要提供默认参数值。
abstract class Animal {
abstract fun getLikeFood():String
}
//子类继承Animal(),
class Rabbit(var food: String) : Animal() {
override fun getLikeFood(): String {
return food
}
}
class Monkey(var food: String) : Animal() {
override fun getLikeFood(): String {
return food
}
}
//实例化子类,输出具体动物喜爱的食物
var rabbit = Ra