python面向对象中方法重写class Person (object):#说明Person继承object类 def __init__(self,name,age): sel

(承接上次的知识学习)

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

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()#对象调用方法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值