python面向对象中方法重写class Person (object):#说明Person继承object类 def

python面向对象中方法重写class Person (object):#说明Person继承object类 def,第1张

python面向对象中方法重写class Person (object):#说明Person继承object类 def

(承接上次的知识学习)

首先给出方法重写的定义:

1.如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;

2.子类重写后的方法可以通过super().xxx()调用父类中被重写的方法。

给出以下 *** 作代码:

class Person (object):#说明Person继承object类
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def chs(self):
        print(self.name,self.age)
#定义Person子类
class Student(Person):
    def __init__(self,name,age,stu_no):
        super(Student, self).__init__(name,age)
        self.stu_no=stu_no
    #方法重写
    def chs(self):
        super(Student, self).chs()
        print("学号为:",self.stu_no)
class Teacher(Person):
    def __init__(self,name,age,teacherofyear):
        super(Teacher, self).__init__(name, age)
        self.teacherofyear=teacherofyear
    #方法重写
    def chs(self):
        super(Teacher, self).chs()
        print("教龄为:",self.teacherofyear)
    #     定义对象


stu1=Student('张三',20,'2113042122')
tea1=Teacher('李四',45,10)
stu1.chs()
print('---------------------')
tea1.chs()
#输出:
#张三 20
#学号为: 2113042122
#----------------------
#李四 45
#教龄为: 10

本案例子类对父类方法(chs)进行重写,并重新对其进行定义。

注意:此时父类原先的定义将会被覆盖。

如果此时仍然想使用父类中的方法可以使用super().xxx()

class Person (object):#说明Person继承object类
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def chs(self):#子类依然使用的父类方法
        print(self.name,self.age
class Student(Person):
    def __init__(self,name,age,stu_no):
        super(Student, self).__init__(name,age)
        self.stu_no=stu_no
    #方法重写
    def chs(self):#子类改写父类方法
        super(Student, self).chs()#子类使用父类方法
        print("学号为:",self.stu_no)
stu1=Student('张三',20,'2113042122')
stu1.chs()#对象调用方法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5579725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存