11.2单继承

class Animal:
def __init__(self, name, hp, ad):
self.name = name
self.hp = hp
self.ad = ad

def eat(self):
'吃药方法'
self.hp += 5
print('%s吃药了%s剩余了%s血' % (self.name, self.name, self.hp))


class Person(Animal): # 声明一个类
def __init__(self, name, hp, ad, sex, job):
'初始化函数'
# 人特有的属性
self.sex = sex
self.job = job
# 下面调父类的属性
Animal.__init__(self, name, hp, ad)

def attack(self, dog):
'''人打狗,狗掉血'''
dog.hp = dog.hp - self.ad
print('%s攻击了%s,%s掉了%s血,还剩%s血' % (
self.name,
dog.name,
dog.name,
self.ad,
dog.hp))


class Dog(Animal): # 声明一个类
def __init__(self, name, kind, hp, ad):
'初始化函数'
# 狗特有的属性
self.kind = kind
# 下面调父类的属性
Animal.__init__(self, name, hp, ad)

def bite(self, person):
person.hp -= self.ad
print('%s咬了%s,%s掉了%s血,还剩%s血' % (
self.name,
person.name,
person.name,
self.ad,
person.hp))


zhangsan = Person('zhangsan', 200, 40, '不详', '射手')
lisir = Person('lisir', 400, 20, '男', '战士')
dog1 = Dog('旺财', '小土狗', 2000, 100)
dog2 = Dog('二哈', '哈士奇', 3000, 150)
dog1.bite(zhangsan)
lisir.attack(dog2)

zhangsan.eat()
dog1.eat()


# 总结:
# A类和B类都需要相同的方法
# 创建父类C,把相同的方法放到父类C中
# A类和B类 继承C类 A(C) B(C)
# A的对象和B的对象就可以调用C中的方法了
#
# A类和B类中有相同的方法,一部分功能相同,还有不同的部分
# 创建父类C,把相同的方法放到C类的方法中
# 在A类和B类保留不同的部分,然后在A类\B类中调用C类方法即可


# 练习:

class Role:
def __init__(self,name):
self.name =name

def show_course(self):
for item in Course.course_list:
print(item.name,item.price,item.period)



class Course:
course_list = []
def __init__(self, name, period, price):
self.name = name
self.period = period
self.price = price


class Student(Role):
def __init__(self,name):
# Role.__init__(self,name)
# super(Student,self).__init__(name)
# super第一个参数,当前所在的类
# super第二个参数,当前所在的对象
super().__init__(name)


class Manager(Role):
pass

python=Course('python','6个月',29800)
java=Course('java','6个月',27800)

Course.course_list.append(python)
Course.course_list.append(java)


banzhang=Student('班长')
banzhang.show_course()

laoding=Manager('老丁')
laoding.show_course()









posted @   海棠花未眠0125  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示