艾萨克·牛顿(1643年1月4日—1727年3月31日)爵士,英国皇家学会会长,英国著名的物理学家,百科全书式的“全才”,著有《自然哲学的数学原理》、《光学》。
他在1687年发表的论文《自然定律》里,对万有引力和三大运动定律进行了描述。这些描述奠定了此后三个世纪里物理世界的科学观点,并成为了现代工程学的基础。他通过论证开普勒行星运动定律与他的引力理论间的一致性,展示了地面物体与天体的运动都遵循着相同的自然定律;为太阳中心说提供了强有力的理论支持,并推动了科学革命。
科普
知识
前言
在上一期的文章中,我们学习了Python面向对象的类的继承,了解到通过继承可以直接得到父类的数据和方法,因此就不需要再一次定义相似的类,这些都为以后的开发工作节省了很多时间。今天我们将会继续学习Python面向对象之-----方法重写。
一、方法重写
在之前我们学习了继承,虽然很实用,但是,还是存在一点问题,子类从父类继承了所有的方法后,如果突然要使用某个父类方法,但是父类的方法又不能满足我们现在的需求又该怎么办呢?一般情况是,你可能会重新定义一个方法,如果这个方法还需要使用父类中其他属性(数据,变量),那么我们定义的方法将会是十分冗余的,有没有一种更好的方法呢?是的,方法重写由此诞生,我们可以将父类的某个方法进行重新书写代码,在里面添加我们想要的方法,如此,就不需要再去定义别的属性,直接使用父类的各种属性,这不是很好吗?
1.1 重写模板
class 子类名(父类名)
def 分类方法名()
想要增加的代码
1.2 实例创建
# -*- coding: UTF-8 -*-
# 定义一个父类
class Car:
def __init__(self):
print("这是一个父类")
# 定义一个父类方法
def Car_number(self):
print("Car包含很多car")
def Car_style(self):
print("Car_style 包含车的款式")
# 定义子类
class s_car(Car):
def __init__(self):
#Car.__init__(self)
print("这是一个子类 S_car")
# 方法重写
def Car_style(self):
print("现在该方法为子类重写后的方法")
# 子类的实例化, 并传给父类中定义需要的参数
s_car_real = s_car()
s_car_real.Car_style()
1.3 代码解读
从上面的代码中,我们其实很容易看出方法重写具体体现在哪里。首先,我们新建了一个父类Car,父类中有一个方法叫做Car_style(),随后定义了一个子类去继承Car这个父类,方法重写就在于子类的类体中包含了一个与父类方法名一样的方法,但是这个方法却和之前的执行操作不一样了,之前是print("Car_style 包含车的款式"),现在是print("现在该方法为子类重写后的方法"),换句话说,虽然现在的方法名跟父类里面的一样,但是他们的实现功能已经不一样了,因此,我们可以称之为方法重写。
1.4 实验结果
END
结语
今天的分享到此结束了,方法重写比较好理解,但是使用的时候要注意,方法名必须保证跟父类一样,否则就不是重写了,通过重写,我们可以摒弃父类中不需要的东西,然后加入我们需要的东西。
相比于网络上很多长篇大论的文章,我们这系列的文章其实都比较短,这样的考虑在于初学的人能够循序渐进,而不是急躁的学习,认真弄懂每一个知识点,方才学得扎实,同时这样短的文章方便大家花费很少的时间掌握,可能睡前的半小时也就学了一个知识点。如此,甚好。
编辑:玥怡居士|审核:小圈圈居士
▼
往期精彩回顾
▼
扫码关注我们
IT进阶之旅
我就知道你“在看”