CLASS02

‘’’
类里面是可以啥都没有的,也就是说
1.类属性是可以没有的
2.也是可以没有函数的

初始化函数:创建实例的时候去传递
‘’’
class MathMethod():
def init(self,a,b):#初始化函数,通过它,可以传递属性值进来,而且还可以传递默认参数
self.a = a
self.b = b
def add(self):
return self.a + self.b

ad=MathMethod(3,5)#这里记得传参数 因为有初始化函数 所以创建实例的时候要传对应个数的参数表进来
res =ad.add()
print(res)

‘’’
接下来,看看继承吧
首先 继承分为两种 1.重写
2.拓展

‘’’

先写个父类,为了方便识别 直接叫dad了

class Dad:
def init(self,name,age):
self.name = name
self.age = age
def drinking(self):
print(“爱喝酒”)
def drive(self):
print(“会开车”)
def job(self):
print(“是个农民”)
class Mom:
def init(self,name):
self.name = name
# self.age = age
def cooking(self,*dish):
print(“会做{}菜”.format(dish))
def singing(self):
print(“爱唱歌”)
def eat(self):
print(“吃得少”)
def drinking(self):
print(“不喝酒”)

这个子类是个最简单的继承

#反正可以这么说,父类有什么,子类就有什么
class Son(Dad):#这是子类,括号里面写的是继承自谁,显然,这里是Dad
pass#还没有想好写什么的时候,可以用pass来占位,这样不会报错
S1=Son(“mayun”,28)
S1.drinking()

还可以有多继承,也就是说 继承了多个父类,请不要被mom这个单词误导,但是呢,如果两个父类里面有同名的来函数,子类调用的时候只会调用到排在前面的父类的类函数

调用的时候,前一个没有的话,就调用后面的

class SON1(Dad,Mom):
pass
S2 = SON1(“ASAS”,1212)
S2.drinking()

这时候结果是

爱喝酒

class SON(Mom,Dad):
pass
S3 = SON(“hahah”)#而且默认参数也是根据哪个父类在前面来决定的
S3.drinking()

这时候结果是

不喝酒

‘’’
接下来,说下超继承
那,什么是超继承呢,只继承了一个父类,然后父类的有,还有自己的特性
关键字 super()
语法
super(子类名,self).父类的函数名()
这样在函数名同名的时候,就可以保证父类的特性,也可以有自己的特性
不多逼逼,试一下
‘’’
class DAU(Dad):

def drive(self):
    super(DAU,self).drive()#注意位置,要放在你定义的函数的下面,切记切记
    print("会开大卡车")

dau =DAU(“WENWEN”,9)
dau.drive()

运行结果是

‘’’
会开车
会开大卡车
‘’’

‘’’
刚才说了重写,那 什么是重写呢
就是说子类函数名与父类函数名一致的时候,那么就会重写,调用的时候会把子类自己的展示出来,而不时父类的
‘’’
class SOn(Dad):
def drinking(self):
print(“不爱喝酒”)

s3 = SOn(“MAYUN”,50)
s3.drinking()

这个运行结果是

‘’’
不爱喝酒
‘’’
D1=Dad(“selflish”,57)
D1.drinking()#而父类去调用的时候,却不会调用到子类的函数

运行的结果是

‘’’
爱喝酒
‘’’

‘’’
拓展
父类没有的函数,子类有,就叫拓展
‘’’

猜你喜欢

转载自blog.csdn.net/minnersinger/article/details/88666202
02