很多跟我一样只有一点C语言基础的朋友,在学习如Python、Java这样的面向对象的语言的时候,走到继承这一步总会觉得非常生涩难懂。其实廖老师这一节将的非常生动详细,结合网上一些博客文章,也能有一个不错的理解。

面向对象语言的典型特征就是可以创建一个类,并且其他的类可以作为子类继承父类的内容。网上好多例子都是以Person、Father、Student、Animal为素材来讲的,甚至于有一些丧心病狂的直接用class A、class B,类里面的一些方法比如学生走路啊、小狗奔跑之类,太过于简单导致抽象,看起来枯燥难懂。

小小吐槽一下。我自己举的例子,也还是以Animal作为素材,不过尽量在内部方法上把内容做丰富一些,让其实现的功能和参数关联程度高一点,不至于太抽象。代码如下(对代码就不做多少分析了,注释写的比较详细,实际结构很简单):

代码打印的结果:

我自己写的例子里,只有一个父类Animal、一个子类Dog以及一个实例my_dog;父类中的方法,有在子类中改写的,有没有改写的;实例my_dog自然具有多态特征,在调用类中方法的时候,无需考虑方法是在哪里创建的、是否被改写,一切遵循“开闭”原则。

这里的super只是用来继承父类Animal中的赋值语句,属于很简单的应用;其实super更大的意义在于类的多重继承,这个以后自己理解更透彻了再举例说明,网上一堆class ABCDEFG看的头疼...

不知道大家看到这个例子有没有对Python的面向对象属性理解更清晰,反正如果我是初学者,我是更希望看到这样的例子的。

分类: 代码相关

1 条评论

三五创业网 · 2017年11月16日 下午4:24

潜心学习,认真拜读!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: