更新时间:2022-08-03 来源:黑马程序员 浏览量:
在继承关系中,子类会自动拥有父类定义的方法,但是有时子类想要按照自己的方式实现方法,即对父类中继承来的方法进行重写,使得子类中的方法覆盖掉跟父类同名的方法。需要注意的是,在子类中重写的方法要和父类被重写的方法具有相同的方法名和参数列表。
例如,不同国家的人,打招呼的方式是不同的,中国人打招呼的方式是“吃了吗?”,美国人打招呼的方式是“Hello”。Person类中定义了一个打招呼的方法say_hello方法进行重写。接下来,通过一个案例来模拟上述场景,如例12-5所示。
例12-5 重写父类的方法.py
# 定义表示人的类 class Person(object): # 打招呼的方法 def say_hello(self): print("--Hello--") # 定义Chinese类继承自Person类 class Chinese(Person): # 中国人打招呼的方法 def say_hello(self): print("吃了吗?") # 创建Chinese类的对象 chinese = Chinese() chinese.say_hello()
在例12-5中,首先定义了Person类,该类中有一个say_hello方法,然后定义了Person类的子类Chinses,该类重写了从父类继承的say_hello方法,最后创建Chinese类的对象chinese,调用say_hello方法。
程序运行的结果如图12-10所示。
图12-10 运行的结果
从程序输出的结果可以看出,Chinese类对象调用的是重写的say_hello方法,而不是父类的say_hello方法。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19