面向对象3大特性:继承性、封装性、多态性
#父类 Human
class Human():
sum = 0
def __init__(self,name,age):
self.name = name
self.age = age
def get_name(self):
print(self.name)
#子类 Student
class Student(Human): #建议类名首字母大写 #括号里用来填写Student的父类
def __init__(self,school,name,age): #name age属于父类 school属于子类
self.school = school
# Human.__init__(self,name,age) #将子类中变量传入父类Human 区别于实例化调用构造函数,普通的方法调用,要把参数传全。
super(Student,self).__init__(name,age) #super代表父类的关键字 推荐!!!!
def do_homework(self):
super(Student,self).do_homework() #super不止调用构造函数,也适用于普通的实例方法里
print('english homework')
student1 = Student('人民路小学','石敢当',18) #实例化调用构造函数,是python机制自动调用,python自动补全self参数
student1.do_homework()
# print(student1.sum) #通过对象的方式来调用类变量
# print(Student.sum) #通过类来调用类变量
# print(student1.name)
# print(student1.age) #说明实例变量都是可以通过父类继承的
# student1.get_name() #说明父类的方法也是可以继承的