继续讨论类和对象的继承和方法重写。
继承
继承类似于生物学的进化,子类通过继承父类,获得父类的性质,并且在此之上增加新的功能。在设计上,应该保证子类和父类的统一,过多的继承会导致耦合,提高复杂度。我们把前文的Book抽象类作为父类,来试一下继承。在Scala里使用extends来继承父类,NewBook继承了Book的所有非私有成员,并且使得NewBook成为Book的子类,如果没有继承Book类的话,就会默认你继承scala.AnyRef类。Python的继承,因为历史原因,存在了多继承(后续详解),它的继承直接在()写上父类的名字,与Scala的类类似,所有的类都是object类的子类。
Scala
Python
4.方法重写
方法重写要保证和你要重写的方法输入类型和输出类型一致。Scala要重写父类的方法,可以加上override符号,在之前的文章也使用过,覆写toString方法。用来重写父类的具体成员之前加上这个修饰符。Python只要保证方法名一致即可重写。不过注意,当你重新改写父类的某个方法时,要注意对子类的影响,否则你写的基类就成了“脆弱基类”。
Scala
Python
领取专属 10元无门槛券
私享最新 技术干货