注:所有代码部分均为连续的,“结果”为在jupyter分步运行结果
代码部分
class human: #人类的定义
def __init__(self,name='someone',age=10):#初始化,创建对象时会执行
self.name = name
self.age = age
print('human init')
#类的方法
def my_name(self):
print('my name is',self.name)
def my_age(self):
print('my age is',self.age)
def eat(self):
print('eat')
def think(self,a,b):
print(a+b)
class student(human):#子类继承父类(学生类继承人类类)
pass #什么都不执行
stu1 = student() #实例化一个学生类
结果
human init //human初始化打印的功能结果
stu1.my_age()#继承父类的功能
结果
my age is 10
!!!以下是子类继承父类,同时子类自己定义自己的功能
class student(human):#子类继承父类
def __init__(self,grade=1,school='MIT'):#初始化子类
super().__init__() #父类的初始化
self.grade = grade
self.school = school
self.scroe = 100
print('student init')
#添加子类自己的方法
def learn(self):
print('learning')
def my_school(self):
print('my school is',self.school)
stu2 = student(4)#创建一个学生类
结果 (先执行父类初始化,在执行子类初始化)
human init
student init
stu2.my_age()#父类功能
结果:
my age is 10
stu2.learn() #子类独有的功能
stu2.my_school()
结果
learning
my school is MIT
!!!以下是子类继承父类,同时子类自己定义自己的功能,
并且重写父类功能
class student(human):#子类继承父类
def __init__(self,grade=1,school='MIT'):
super().__init__() #父类的初始化
self.grade = grade
self.school = school
self.scroe = 100
print('student init')
#添加子类自己的方法
def learn(self):
print('learning')
def my_school(self):
print('my school is',self.school)
#子类可以重写父类的方法
def think(self,a,b):
print(a*b)
stu3 = student()
结果
human init
student init
stu3.think(10,20)#子类重写了夫类的方法
结果:
200