2020-03-25

学习笔记之三十四

class Student:
def init(self,name,age):
self.name=name
self.age=age

def eat(self):
    print(self.name+'正在吃饭')

def run(self):
    print(self.name+'正在跑步')

class Employee:
def init(self,name,age):
self.name=name
self.age=age

def eat(self):
    print(self.name+'正在吃饭')

def run(self):
    print(self.name+'正在跑步')

class Doctor:
def init(self, name, age):
self.name = name
self.age = age

def eat(self):
    print(self.name + '正在吃饭')

def run(self):
    print(self.name + '正在跑步')

‘’’
is a 继承 base class 基类 父类 :共有的部分
上述定义的三个类中:
student,employee,doctor 代码相同,都属于人类
相同的代码 代码冗余,可读性不高

于是可以将相同的代码(共有的部分)单独定义一个类----Person类
而student,employee,doctor 分别继承 Person类
Person类称为 基类 父类
student,employee,doctor类称为子类
 格式为:class Student(Person):
            pass
 总结:

1、如果子类中不需要定义__init__ ,调用父类 super class 的__init__
2、如果子类继承父类也需要定义自己的__init__,需要在后边调用父类的__init__
调用格式;
super().init(参数)
super(类名,对象).init(参数)

3、如果父类中有一个eat(),子类也定义了一个eat(),默认搜索原则,先找当前类,再去找父类
s.eat()
override: 重写(覆盖)
子类中定义同父类中同名的方法,就叫做 重写
4、子类方法中也可以调用父类的方法
super().方法名(参数)

具体应用如下:
‘’’
class Person:
def init(self,name,age):
self.name=name
self.age=age

def eat(self):
    print(self.name+'正在吃饭')

def run(self):
    print(self.name+'正在跑步')

#,每个子类特有的属性和方法可单独定义在子类中
#子类定义中 定义初始化属性时必须调用父类的初始化属性,特有的可另外写出
class Student(Person):
def init(self,name,age,clazz):
super().init(name,age) #若不调用父类初始化__init__() 子类的__init__() 就会阴影,super class :父类
self.clazz=clazz

def eat(self,food):
    super().eat()
    print('{}的{}正在和他美丽的媳妇一起吃饭,他们非常喜欢吃{}'.format(self.age,self.name,food))

#
#         当子类和父类中定义了相同的方法,调用时先从子类自身中寻找输出
def study(self,course):
    print('{}正在学习{}'.format(self.name,course))

class Employee(Person):
def init(self,name,age,salary,

发布了52 篇原创文章 · 获赞 2 · 访问量 562
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览