摘要: 1.抽象类 (1)概念 ​ 从多个具有相同特征的类中抽象出一个使用abstract修饰的类,以这个抽象类作为其子类模板,从而避免子类设计的随意性。抽象类的设计是一种 模板模式 的设计模式。 (2)特点 抽象类、抽象属性、抽象方法都不需要open修饰符,open修饰符和abstract不能共存。 抽象 阅读全文
posted @ 2019-05-29 11:36 谢光伟 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ kotlin创建的类,如果所有属性值是不可改变的,那这个类就是不可变类。 ​ 不可变类属性的值始终维持在初始化状态,因此不可变类 很好维护 。 2.创建规则 提供带参的构造器,用来初始化类中的属性; 定义final val只读属性,避免通过setter方法改变该属性值。 有必要的话还可 阅读全文
posted @ 2019-05-28 16:54 谢光伟 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 1.final、open修饰符 (1)概念 ​ final用于修饰类、属性和方法,代表类、属性和方法是不可被继承的,kotlin类、属性、方法如果不添加修饰符(final/open修饰符)默认使用final修饰。 ​ open是final的反义词,用于对类、属性和方法开放继承权限。 (2)注意点 ​ 阅读全文
posted @ 2019-05-28 15:58 谢光伟 阅读(3803) 评论(0) 推荐(1) 编辑
摘要: 1.概念 ​ kotlin支持在不修改类代码的情况下,动态为类添加属性(扩展属性)和方法(扩展方法)。 2.扩展方法 ​ 扩展方法执行静态解析(编译时),成员方法执行动态解析(运行时)。 (1)语法格式 ​ 定义一个函数,在被定义的函数前面添加“类名.”,该函数即为该类名对应类的拓展方法。 (2)成 阅读全文
posted @ 2019-05-27 17:55 谢光伟 阅读(7180) 评论(0) 推荐(0) 编辑
摘要: 1.概念 ​ 相同类型对象调用同一个 方法或属性 时可能呈现出多种不同子类(子类重写了该 方法或属性 的话)行为或特征。(或者说编译时状态是父类类型,运行时状态可能是其他多种子类类型)。 ​ 向上转型:子类实例(或说对象)赋给父类变量(或说引用)时。 ​ 向下转型:父类类型实例赋给子类类型变量时。 阅读全文
posted @ 2019-05-24 19:43 谢光伟 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 1.子类构造器委托调用父类构造器 子类继承父类,子类构造器一定要直接或者间接委托调用调用父类构造器。 (1)子类有声明主构造器时 首先,子类次构造器一定要直接或者间接委托调用子类的主构造器; 其次,子类主构造器一定要委托调用父类构造器,从而子类次构造器能够通过主构造器间接委托调用父类构造器。 (2) 阅读全文
posted @ 2019-05-24 19:15 谢光伟 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 1.构造器分类 ​ kotlin构造器分为:0~1个主构造器和0~n个次构造器,kotlin至少有一个构造器,没声明构造器,会自动生成一个无参的主构造器。 2.初始化块 ​ 初始化块是主构造器的执行体。 3.构造器重载 (1)kotlin声明了主构造器 声明了主构造器,重载的构造器一定要直接/间接委 阅读全文
posted @ 2019-05-24 15:14 谢光伟 阅读(882) 评论(0) 推荐(0) 编辑
摘要: | 名称 | 访问权限 | | | | | public(默认) | 该权限符修饰的成员可以在 任何地方 被访问 | | internal | 该权限符修饰的成员可以在该 类的内部 或者 文件的内部 或者 同一个模块内 被访问 | | protected | 该权限符修饰的成员可以在该 类的内部 或 阅读全文
posted @ 2019-05-22 14:57 谢光伟 阅读(527) 评论(0) 推荐(0) 编辑