Python学习入门笔记(十三)类——继承

2017-07-12  本文已影响0人  Yao_0

注:所有代码部分均为连续的,“结果”为在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

上一篇下一篇

猜你喜欢

热点阅读