类之继承

阅读: 评论:0

类之继承

类之继承

面向对象的集成和现实生活中的继承相同,即:子继承父的内容

 

例如:

 狗:汪、吃、喝、拉、撒

 猫:喵、吃、喝、拉、撒

 

为狗、猫、各自创建一个"类":

 1 class Dog:
 2 
 3     def __init__(self,name,age,gender):
 4 
 5         self.name = name
 6 
 7         self.age = age
 8 
 9         der = gender
10 
11     def bark(self):
12 
13         print("%s is dog dog !" % (self.name))
14 
15     def eat(self):
16 
17         print("%s is eating something now!" % (self.name))
18 
19     def drink(self):
20 
21         print("%s is drinking something now!" % (self.name))
22 
23     def shit(self):
24 
25         print("%s is shiting now!" % (self.name))
26 
27     def pee(self):
28 
29         print("%s is peeing now!" % (self.name))
30 
31 #########
32 
33 class Cat:
34 
35     def __init__(self,name,age,gender):
36 
37         self.name = name
38 
39         self.age = age
40 
41         der = gender
42 
43  
44 
45     def miaow(self):
46 
47         print("%s is cat cat !" % (self.name))
48 
49  
50 
51     def eat(self):
52 
53         print("%s is eating something now!" % (self.name))
54 
55  
56 
57     def drink(self):
58 
59         print("%s is drinking something now!" % (self.name))
60 
61  
62 
63     def shit(self):
64 
65         print("%s is shiting now!" % (self.name))
66 
67  
68 
69     def pee(self):
70 
71         print("%s is peeing now!" % (self.name))

 

 

上述两端代码可以看出,吃喝拉撒都是猫、狗特有的属性,但是分别在两个类中编写了两次,通过继承思路修改代码:

父类"动物":吃、喝、拉、撒

子类"狗":汪汪叫(继承父类功能)

子类"猫":喵喵叫(继承父类功能)

 1 class Animal:
 2 
 3     def eat(self):
 4 
 5         print("%s is eating something now !" % (self.name))
 6 
 7  
 8 
 9     def drink(self):
10 
11         print("%s is drinking something now!" % (self.name))
12 
13  
14 
15     def shit(self):
16 
17         print("%s is shiting now!" % (self.name))
18 
19  
20 
21     def pee(self):
22 
23         print("%s is peeing now!" % (self.name))
24 
25  
26 
27 class Dog(Animal):
28 
29     def __init__(self,name,age,gender):
30 
31         self.name = name
32 
33         self.age = age
34 
35         der = gender
36 
37  
38 
39     def bark(self):
40 
41         print("%s is dog dog !" % (self.name))
42 
43  
44 
45 class Cat(Animal):
46 
47     def __init__(self,name,age,gender):
48 
49         self.name = name
50 
51         self.age = age
52 
53         der = gender
54 
55  
56 
57     def miaow(self):
58 
59         print("%s is cat cat" % (self.name))
60 
61  
62 
63 dog1 = Dog("cisco",2,"male")
64 
65 cat1 = Cat("xiaohei",3,"female")
66 
67 dog1.bark()
68 
69 cat1.eat()

 

在指定类的时候,括号中写另一个类,等于让当前类继承括号中类的功能。

编写继承类的思路:

把多个类公有的功能写入父类,子类只需要继承父类,这样就不需要一一编写重复的功能块。

 

多类继承:

 多类继承的时候,如何查找方法,在Python2.x的版本中区分经典类、新式类。两种不同类型的类在查找"方法"的时候查找规则是不同的。

经典类:深度优先

新式类:广度优先

如何区分"类"的类型

新式类:当前类或者父类继承了(object)

在Python3.x中,不在讨论经典类,默认都是新式类,所以我们只需要知道广度优先的查找特征。

class D:

class C:

class B(C,D):

class A(B):

ABCD四个类的关系:

B是A的父类

C,D是B的父类

这时候,在A中执行一个方法的时候,Python查找路径:

A————>B————>C————>D

任何一个过程中,只要找到,就停止继续查找

 

转载于:.html

本文发布于:2024-01-31 02:50:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664064524799.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23