美文网首页
1.Kotlin -- 类的进阶:修饰符

1.Kotlin -- 类的进阶:修饰符

作者: TensorFlow开发者 | 来源:发表于2023-01-03 09:31 被阅读0次

1. 修饰符

1.1 在 Kotlin 中,修饰符有:open/final,private/protected/internal/public

1.2 open/final:一个类能不能被继承。

1.3 private/protected/internal/public:一个类中或 Kotlin 文件中的变量或方法能不能被其他类或其他 Kotlin 文件访问。

2. open/final

2.1 一个类在类的定义前加上 open 修饰符才可以被继承。如果没有加 open 关键字,那么默认是 final,即不可被继承的。

2.2 被 open 修饰的类中只有被 open 修饰的属性或方法才可以被子类重写,如果在属性或方法前没有加 open 关键字,那么默认是 final,是不可被覆盖重写的。

2.3 在子类中覆盖重写父类中的属性或方法是,需要使用关键字 override 修饰。

2.4 子类中重写了父类的属性或方法,那么此时子类中的属性或方法没有加 open 关键字,子类的子类也是可以重写的,也就是 override 默认是 open 的。如果不想被子类的子类进行重写,需要显示用 final 修饰。

2.5 在 Kotlin 中,接口不需要加上 open 修饰符。接口本身和它内部的方法和属性都是默认加上 open 修饰符的,而普通类默认是加上 final 修饰符。而且在接口中也不能手动加上 final 修饰符,因为接口的作用就是为了抽象,如果不能被赋值或实现,那么接口就没用了。

3. private/protected/internal/public

3.1 这4个修饰符为可见性修饰符。
(1) 如果用 private 修饰,那么只能在这个类的内部(包含其所有成员)可见;
(2) 如果用 protected 修饰,不但可以在类内部可见,在子类中也可见;
(3) 如果用 internal 修饰,则类声明的本模块内的客户端都可见(模块的概念同 Java 中包的概念);
(4) 如果用 public 修饰,则任何地方可见。在 Kotlin 中,如果没有显示指定 private/protected/internal/public 这几个修饰符,那么默认是 public。

3.2 在类的外部如何访问 private 修饰的属性,很简单,提供一个对外的方法就可以了。原理同 Java 中的 getter 和 setter 方法。

3.3 在 Kotlin 中,如果没有显示指定 private/protected/internal/public 这几个修饰符,那么默认是 public。

3.4 上面的四种可见性修饰符不仅可以用在类中,也可以用在全局变量中,即在 Kotlin 文件中也是可以的。

相关文章

  • 1.Kotlin -- 类的进阶:修饰符

    1. 修饰符 1.1 在 Kotlin 中,修饰符有:open/final,private/protected/i...

  • java修饰符

    java中的类修饰符、成员变量修饰符、方法修饰符。 类修饰符: public(访问控制符),将一个类声明为公共类,...

  • Kotlin 进阶之路1 基础语法

    Kotlin 进阶之路 目录 1.Kotlin 基础语法 1.1第一程序 1.2常量 1.3变量 2.Kotlin...

  • Java中各种修饰符的说明

    类 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 访问修饰符与修...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • TypeScript学习7、类Class

    TS类 TS类 修饰符public 公共修饰符,修饰 可以通过实例访问的属性和方法。 private 私有修饰符,...

  • #30天专注成长计划#-DAY5-c#

    1、类的语法 [访问修饰符] class 类名 { 类的成员; //字段、属性、方法 } 访问修饰符:publ...

  • Java修饰符

    Java修饰符用来定义类、方法、变量,通常放在语句的最前端,修饰符主要分为两类: 访问控制修饰符 非访问修饰符 访...

  • 3.类-定义及修饰符

    类的定义 类的继承 类的修饰符 typescript中定义属性时提供的修饰符 public: 共享 在类里面、子类...

网友评论

      本文标题:1.Kotlin -- 类的进阶:修饰符

      本文链接:https://www.haomeiwen.com/subject/rrxlcdtx.html