Scala对象、继承、面向接口实战解析

Scala中类和对象是两个不同的概念,类和对象类型多样、复杂

对象的特点:
1、object修饰符修饰的对象不管是私有的还是共有的,其他类都可以访问其方法
2、object修饰的叫做伴生对象,class修饰的叫做伴生类
3、伴生对象不是类接口api的一部分(是从架构、代码重构的方面考虑的)
构造器:
Scala对象、继承、面向接口实战解析

4、上面类中明确申明了两个属性_sc/deps,而且没有get、set方法,因为类实例化的时候会自动生成,这让代码更简介,
而且申明了属性,该抽象类被继承时,新的类必须要申明的属性,因为这些属性都是该类必须用到的。比如,SparkContext是RDD生成的上下文容器,必不可少,Dependency记录RDD的依赖关系
5、layz:第一次使用时进行实例化加载,起到延迟加载延迟执行的作用
6、重载构造器直接或简介的调用了“核心构造器”

继承的特点:

1、面向接口编程:是一种编程思想,
2、类继承父类时不会继承类的伴生对象。
3、isInstanceOf:asInstanceOf:将父类转换成具体某个子类,getClass得到具体的类 classOf类本身
4、面向接口编程的目的是依赖于抽象而不依赖于具体,而且可以包容不同种类的具体实现、
5、RDD中有很多方法、函数,子类可以直接复用,提高了代码的复用率
6、可以用overvide来重写父类的属性

Scala接口的特点
1、目前软件编程的核心思想是面向接口编程。
2、Scala中的抽象类可以没有抽象方法,全部都是具体的实现工具函数,extends/with extends只有一个,with可以有多个
3、with叫做混入,如子类混入了接口。实例对象也可以混入接口中
Scala对象、继承、面向接口实战解析
Scala对象、继承、面向接口实战解析
注:
1、当继承多个接口且接口中有共同的方法,那么调用该方法的时候执行的顺序是怎样的? 从右往左,即从第一个继承的接口开始执行