大发幸运飞艇_大发幸运飞艇官网

Scala入门到精通——第九节 继承与组合

时间:2020-01-01 21:15:16 出处:大发幸运飞艇_大发幸运飞艇官网

等同于下面的Java代码

  组合也而且设计类的完后 把要组合的类的对象加入到该类中作为五种人的成员变量。组合的优点:

   1 当前对象只有通过所所含的那个对象去调用其土办法,五种所所含的对象的内内外部细节对当前对象时不可见的。

  2 当前对象与所含的对象是一有一另另一个低耦合关系,将会修改所含对象的类中代码需要修改当前对象类的代码。

  3 当前对象能只有在运行时动态的绑定所所含的对象。能只有通过set土办法给所所含对象赋值。

  组合的缺点:

  1 容易产生太久的对象。

  2 为了能组合多个对象,需要仔细对接口进行定义。

由此可见,组合比继承更具灵活性和稳定性,五种在设计的完后 优先使用组合。只有当下列条件满足时才考虑使用继承:

1 子类是并需要特殊的类型,而不而且父类的一有一另另一个角色

2 子类的实例需要变成而且类的对象

3 子类扩展,而需要覆盖将会使父类的功能失效

继承能只有重用父类的代码,从而复杂化应用系统进程设计,继承是is-a的关系,apple is a kind of fruit(苹果手机556是并需要水果)。还有并需要代码重用的土办法是组合,组合是has-a的关系(one person has a head)。继承在前面将会讲了,这边只给出组合的使用代码:

代码

下面这段代码

下类的代码演示了scala类的继承

二 组合

  继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类能只有重写父类的土办法来方便地实现对父类的扩展。

  继承的缺点有以下几点:

  1 父类的内内外部细节对子类是可见的。

  2 子类从父类继承的土办法在编译时就选着下来了,五种无法在运行期间改变从父类继承的土办法的行为。

3 将会对父类的土办法做了修改得话(比如增加了一有一另另一个参数),则子类的土办法需要做出相应的修改。五种说子类与父类是并需要高耦合,违背了面向对象思想。

不得不提的是,将会父类是抽象类,则不override关键字能只有不加,这是将会将会继承的父类是抽象类(假设抽象类为AbstractClass,子类为SubClass),在SubClass类中,AbstractClass对应的抽象土办法将会没有实现得话,那SubClass也需要定义为抽象类,而且得话需要要有土办法的实现,而且得话,加不加override关键字需还可以只有的。下面是一有一另另一个实例代码:

当某个类在应用系统进程中只使用一次时,能只有将类定义为匿名类,匿名类的定义如下:

“多态”(Polymorphic)也叫“动态绑定”(Dynamic Binding)、“迟绑定”(Late Binding),指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据嘴笨 际类型调用其相应的土办法。”即指子类的引用能只有赋给父类,应用系统进程在运行时根据实际类型调用对应的土办法

下面的代码演示了scala中的多态与动态绑定:

土办法重写指的是当子类继承父类的完后 ,从父类继承过来的土办法只有满足子类的需要,子类希望有五种人的实现,这需要要对父类的土办法进行重写,土办法重写是实现多态和动态绑定的关键。

scala中的土办法重写同java一样,也是利用override关键字标识重写父类的算法。

下面的代码演示了土办法重写怎样才能实现

继承与组合使用总结:

下面的代码演示scala在继承的完后 ,构造函数的执行顺序

等同于下面的java代码

换成公众微信号,能只有了解更多最新Spark、Scala相关技术资讯

一 继承

热门

热门标签