面向对象跟Java还算很像,不过居然有多继承
整个代码直接贴上:
class Human:
"""人类"""# 这是类注释,居然写在下面的,不习惯
name = ''
"""名字"""
def getName(self):
"""获取名字"""
return self.name # 访问类属性
def __init__(self, name):
"""构造方法"""
self.name = name
# 继承
class Student(Human):
"""学生类"""
id = 0
"""学号"""
def __init__(self, sid, name):
"""子类构造方法"""
super().__init__(name) # 调用父类的构造方法
self.id = sid
def getID(self):
return self.id
class Programmer:
"""程序员类"""
hairCount = 3000
def __init__(self, count):
# 方法重写
self.hairCount = count
def stayUpLate(self):
print('熬夜')
pass
def getHairCount(self):
return self.hairCount
pass
# 多继承,如果没有写构造方法,会调用第一个父类的构造方法
class PSman(Student, Programmer):
def getHairCount(self):
return self.hairCount
pass
def learnCoding(self):
print('学习敲代码')
# 继承关系,左边是父类,右边是子类
# human->student->PSman
# Programmer->PSman
print('------Human类------')
print('------Human类------')
human = Human('李四')
print('human.getName()', human.getName())
print('------Student类------')
print('------Student类------')
student = Student(12, 'Tom')
print('student.getName()', student.getName())
print('student.getID()', student.getID())
print('------PSman类------')
print('------PSman类------')
p_sman = PSman(67, 'proA')
print('p_sman.getName()', p_sman.getName())
print('p_sman.getHairCount()', p_sman.getHairCount())
print('p_sman.getID()', p_sman.getID())
p_sman.stayUpLate()
p_sman.learnCoding()
运行结果:
------Human类------
------Human类------
human.getName() 李四
------Student类------
------Student类------
student.getName() Tom
student.getID() 12
------PSman类------
------PSman类------
p_sman.getName() proA
p_sman.getHairCount() 3000
p_sman.getID() 67
熬夜
学习敲代码
网友评论