面向对象的三大特征--继承

什么是继承?
继承父母的愿望,继承父母的财产。。。。
继承火的意志~

计算机中继承:
面向对象中的继承就表示一个类获取另外一个类的成员的操作。(并非所有成员)


继承相关的概念:
被其他类继承的类,这个类叫做父类,也叫做基类或者超类
继承其他类的类,这个类叫做子类,也叫做派生类

继承的意义:
提高代码的重用率,建立新的类与类的关系,方便其他逻辑操作。

继承的格式:
class 父类:
pass

class 子类(父类):
pass

继承的特征:
1.在不指定父类的情况下,所有的类均继承自object类(系统提供的!)
2.子类继承父类就具有父类的所有成员。
3.子类继承父类,不会将父类成员复制到子类中,子类如果需要成员,可以找父类索取!
4.私有化的成员,允许在子类中单独建立一份,不会找父类索取私有成员
5.子类可以根据需求添加自己独有的成员来进行操作。
6.子类重载父类的成员。仅仅是对子类/对象有效。并不会影响父类
7.子类在重载父类的方法的时候,可以调用父类的方法来进行操作:
super().父类方法名() -> 必须是带有self的对象方法才可以使用
父类名.父类方法名() -> 任何方式都允许

 

继承的特性和实例

 1 #继承的特性和实例
 2 #父类
 3 class Father(object):
 4     #成员属性--------------------------------------------------
 5     familyname = '' #姓氏
 6     __firstname  = '' #名字
 7     sex = '' #性别
 8     age = 48    #年龄
 9     color = '黄色'#肤色
10     #媳妇进行私有化操作
11     __wife = ('甘夫人','糜夫人','孙尚香')
12 
13     #成员方法--------------------------------------------
14     #吃饭
15     def eat(self):
16         print('甜甜圈,咖啡,面包,方便面~')
17     #
18     def run(self):
19         print('拔起腿就跑~')
20     #做鞋
21     def makeshoes(self):
22         print('做草鞋')
23 
24 #打印Father类的成员
25 #print(Father.__dict__)
26 #输出结果:{'__module__': '__main__', 'familyname': '刘', '_Father__firstname': '备', 'sex': '男', 'age': 48, 'color': '黄色', '_Father__wife': ('甘夫人', '糜夫人', '孙尚香'), 'eat': <function Father.eat at 0x00000269B4DDD7B8>, 'run': <function Father.run at 0x00000269B4DDD840>, 'makeshoes': <function Father.makeshoes at 0x00000269B4DDD8C8>, '__dict__': <attribute '__dict__' of 'Father' objects>, '__weakref__': <attribute '__weakref__' of 'Father' objects>, '__doc__': None}
27 
28 #声明一个子类
29 class Son(Father):
30     #父类私有化之后,子类独自添加的成员
31     firstname = ''
32     #添加子类独有的成员
33     weight = '200斤'
34 
35     #做鞋(父类已经具有)  这个操做称之为方法重载
36     def makeshoes(self):
37         #重新定义功能即可
38         print('做皮鞋,不是人造革,是真的皮')
39 
40 
41     #跑路(重载父类的操作->在覆盖的同时还要使用原有内容)
42     def run(self):
43         #添加一个操作
44         print('穿上鞋子')
45 
46         #调用以下父类的跑路方法(方法1)
47         #super().run()#暂时可以认为super表示寻找父类
48 
49         #用以下父类的跑路方法(方法2)
50         Father.run(self)
51 
52         #添加一个操作
53         print('好汉饶命')
54 
55 #打印子类的成员
56 #print(Son.__dict__)
57 #输出结果:{'__module__': '__main__', 'firstname': '禅', 'weight': '200斤', 'makeshoes': <function Son.makeshoes at 0x00000269B4DDD950>, 'run': <function Son.run at 0x00000269B4DDD9D8>, '__doc__': None}
58 
59 #实例化子类的对象
60 ls = Son() #子类的对象
61 #访问子类的姓氏
62 #print(ls.familyname)
63 #输出结果:刘
64 
65 #print(ls.sex)
66 #输出结果:男
67 
68 #print(ls.age)
69 #输出结果:48
70 
71 #ls.makeshoes()
72 #输出结果:做皮鞋,不是人造革,是真的皮
73 
74 #私有成员,仅仅允许原有类和原有类的对象访问,子类也不可以继承或者访问。
75 #print(ls.__wife)
76 #输出结果:AttributeError: 'Son' object has no attribute '__wife'
77 
78 #私有化性名
79 #print(ls.firstname)
80 #输出结果:禅
81 
82 #访问子类独有的成员
83 #print(ls.weight)
84 #输出结果:200斤
85 
86 #访问做鞋功能
87 #ls.makeshoes()
88 #输出结果:做皮鞋,不是人造革,是真的皮
89 
90 #访问跑的方法
91 ls.run()
92 '''
93 输出结果:
94 穿上鞋子
95 拔起腿就跑~
96 好汉饶命
97 '''

 

posted @ 2019-05-12 11:32  双伟科技  阅读(211)  评论(0编辑  收藏  举报