1.接口和抽象类
抽象类abstract class是要被具体的类来继承的来使用的,它是不能被实例化的,抽象类里面的抽象方法abstract fun hello()是一定要被子类实现的;
抽象类是有类的特征,接口只是一些方法的定义;
共同点:不能实例化
用法:类可以实现多个接口,但是之类继承一个类;
2.继承是集成类的构造方法
一个类要被继承必须是open的,一个方法要被其它类使用,也要必须是open的;abstract类和方法是生来被继承的,所以不用open标识;


3. object className {} 即就是单例

4.伴生对象companion object{}和静态成员
伴生对象即就是静态方法:直接通过类名调用。



5.拓展(类.要拓展的方法或者属性)


6.内部类
1>.非静态内部类是持有外类的状态,可以在非静态内部类里面访问非静态内部类的属性;
2>.静态内部类,就访问不了静态内部类外面的属性喽,因为它没有持有外类的状态;
3>.kotlin中的内部类默认的是静态内部类;使用inner关键字可使其为非静态内部类。

网友评论