#创建父类
class Person:
def __init__(self,fname,lname):
self.firstname=fname
self.lastname=lname
def printname(self):
print(self.firstname,self.lastname)
#use the Person class to creat an object
#and then execute the printname method:
# ~ x=Person('john','doe')
# ~ x.printname()
# ~ class Student(Person):#创建子类时,将父类作为参数发送
# ~ pass #不想向类添加属性或方法时,使用关键字pass
# ~ #使用类Student创建对象,然后执行printname方法
# ~ x=Student('zhang','san')
# ~ x.printname()
#添加__init__()函数
# ~ class Student(Person):
# ~ def __init__(self,fname,lname):
#向子类添加__init__()函数后,子类不在继承父类的init__函数
#子类的__init__()函数会覆盖父类init函数的继承
#要想继承父类init函数,要添加对父类init的调用
#Person.__init__(self,fname,lname)
#使用super()函数让子类继承父类的所有方法和属性
#super().__init__(fname,lname)
#super()不需要指定父类名称,它会自动从父类继承属性和方法
# ~ self.firstname=fname
# ~ self.lastname=lname
#添加属性和方法
class Student(Person):
def __init__(self,fname,lname,year):
super().__init__(fname,lname)
self.graduationyear=year
def welcome(self):
print("welcome",self.firstname,self.lastname,
"to the class of",self.graduationyear)
x=Student('zhang','san',2019)
x.welcome()