Kotlin中的open关键字

6,754 阅读1分钟

Kotlin中的open关键字

在java中允许创建任意的子类并重写方法任意的方法,除非显示的使用了final关键字进行标注。

而在kotlin的世界里面则不是这样,在kotlin中它所有的类默认都是final的,那么就意味着不能被继承,而且在类中所有的方法也是默认是final的,那么就是kotlin的方法默认也不能被重写。那么想在kotlin中继承父类应该怎么做呢?

  • 为类增加open,class就可以被继承了

    open class Person{
        
    } 
    
  • 为方法增加open,那么方法就可以被重写了

    open class Person{
        open fun eat(food: String) {
            
        }
    
    }
    
    open class Man:Person(){
        override fun eat(food: String) {
            super.eat(food)
            
        }
    }