Kotlin笔记4-面向对象编程2-接口,数据类与单例类
 
3.2 面向对象编程2
- 接口
 
interface
Example:
interface Study {
    fun readBooks()
    fun doHomework(){
        println("do homework default implementation.")
    }
}继承父类与实现接口
class Student5(name: String, age: Int) : Person2(name, age), Study {
    override fun readBooks() {
        println("$name is reading.")
    }
    override fun doHomework() {
        println("$name is doing homework.")
    }
}面向接口编程: 多态
fun main() {
    val student = Student5("Jack", 19)
    doStudy(student)
}
fun doStudy(study: Study) {
    study.readBooks()
    study.doHomework()
}接口默认实现
interface Study {
  fun readBooks()
  fun doHomework() {
    println("do homework default implementation."
  }
}- 函数的可见性修饰符
 
Java  | public  | 
public  | public  | 
private  | private  | 
protected  | protected  | 
default  | internal  | 
Kotlin,Java修饰符对照
修饰符  | Kotlin  | Java  | 
private  | 对当前类内部可见  | 当前类可见  | 
public  | 默认  | 当前类可见  | 
portected  | 对当前类和子类可见  | …同一包路径下的类可见  | 
internal  | 对同一模块的类可见  | 无  | 
default  | 无  | 默认,同一包路径下的类可见  | 
                










