面向对象继承

'''

属性:颜色、材质、品牌、长度、价格......
功能:写字、画画

钢笔
属性:颜色、材质、品牌、长度、价格......
功能:写字、画画

眉笔
数据:颜色 材质 品牌 长度 价格
功能:画眉毛

粉笔笔
属性:颜色、材质、品牌、长度、价格......
功能:写字、画画

铅笔
属性:颜色、材质、品牌、长度、价格......
功能:写字、画画

继承满足前提
钢笔属于笔
眉笔属于笔
粉笔属于笔
铅笔属于笔
'''
class 笔: # 父类
def __init__(self,颜色,价格):
self.颜色 = 颜色
self.价格 = 价格
def 写字(self):
print('写字-写字')
def 画画(self):
print('画画-画画')
class 钢笔(笔): # 子类 符合继承父类?子类(父类名)
pass
class 眉笔(笔):
def 画眉毛(self):
print('画眉毛')
class 粉笔(笔):
pass
class 铅笔(笔):
pass
# 如何使用 创建对象
qb = 铅笔('黑色',1.88)
qb.写字()

b = 笔('黑色',2.55)
b.写字()
b.画画()

mb = 眉笔('红色',3.34)
mb.画眉毛()
mb.写字()
mb.画画()
# 想要按照面像对象的思想去设计对象,就需要这么几个类
# 如果发现这些里面的代码都是重复的
# 类-->继承-->子类继承父类

'''
学生和老师
学生
属性:性别、姓名、年龄
方法:写代码、写作业、看小鹅通直播
老师
属性:性别、姓名、年龄、工资
方法:教写代码、布置作业、小鹅通直播

学生继承老师?老师继承学生?
某某某学校的人--->父类
学生--->子类
老师--->子类
'''
class hsDX: # 父类
schoolName = '河山大学'
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def xet(self):
print(f'{self.name}正在使用小鹅通')
class Teacher(hsDX): # 子类
def __init__(self,name,age,sex,salary):
# 既然父类已经对这三个属性进行了添加,能不能直接调用父类的初始化方法呢?
super().__init__(name,age,sex)
self.salary = salary
def teach_a_lesson(self):
print(f'{self.name}正在教代码')
def homework(self):
print(f'{self.name}正在布置作业')
class Student(hsDX):
def len_code(self):
print(f'{self.name}正在学习代码')
def do_the_homework(self):
print(f'{self.name}正在写作业')

coco = Teacher('coco',18,'女',10000)
coco.teach_a_lesson()
coco.homework()

rocco = Student('rocco',16,'男')
rocco.len_code()
rocco.do_the_homework()

# 当子类和父类中拥有一个相同的方法()
# 只有继承才会有从写,子类从写了和父类一模一样的方法
yy = Teacher('yy',19,'男',200000)
yy.homework()
posted @ 2024-01-23 10:27  罗科-ROCCO  阅读(1)  评论(0编辑  收藏  举报