面向对象编程小节(二)

it2022-05-05  44

上一次说到了,什么是对象,对象是怎么来的,对象有哪些行为,那么既然有了对象,就相当于创建了一个人,那么正常的人,都会有后代,而且可能会有多个孩子,而孩子也会有自己孩子的时候,这个就是面向对象编程中的关于类的继承......

(开场白)

多继承问题的核心其实就是,搞清楚谁继承了谁的什么,

先上代码,

1 class Person(object): 2 3 def __init__(self, name, age): 4 self.name = name 5 self.age = age 6 self.sex = 'normal' 7 8 def talk(self): 9 print('person is talking...') 10 11 12 class Blackperson(Person): 13 def __init__(self, name, age, strength): 14 self.strength = strength 15 Person.__init__(self,name,age) View Code

黑人是人的一种,所以,人的属性,黑人是都有的,比如,人分男女,黑人也分男女,(我并不是人种歧视,只是举个例子)

说话是正常人的本能,那么说话也是黑人的本能,如果是聋哑人,也属于人的一种,也会继承人的属性,但是说话这一属性就需要重新定义, 讲其设置为不会说话,

这就是类的继承,再给补一个小知识点,是Python2和Python3的区别:

  python 2 : 深度查询  python3 : 广度查询

什么意思呢,就是指,一个孩子的属性可能来自自己的父亲,也可能是母亲,当然也会是隔壁老王(这个例子不怎么恰当,先将就着理解),这样的话,这三者就会有一个先后顺序,Python2中的办法是,先去找父亲,然后去找爷爷,因为这个属性有可能是父亲继承爷爷的,而Python3的方法是,先去找父亲,然后找母亲,最后找老王,

最后再说个,继承的代码书写方法:

1 class FooParent(object): 2 def __init__(self): 3 print ('Parent') 4 def test(self): 5 print ('foo parent') 6 7 class FooChild(FooParent): 8 def bar(self): 9 self.test() 10 FooParent.test(self) 11 super(FooChild, self).test() 12 13 # 这三种方法均可实现子类对父类方法的调用 View Code

这三种方法均可实现对父类的调用......

不过,个人推荐第三种,显得高端大气上档次

......

未完待续

转载于:https://www.cnblogs.com/simon4532761/p/6404727.html


最新回复(0)