python 的继承之override方法重写

什么是override

override字面理解是无效,消除的意思,在Python里两个同名的方法但执行不同程序,其中一个方法使得另外一个方法无效的,这就叫override(重写)。
通常情况下,父类中的方法,而子类中有同名方法,在执行该方法时,调用的是该方法对应的类。
值得一提的是,这里父类和子类在原文中是superclass(总纲)和subclass(亚纲),用的是生物学术语,反应出计算机中的类与生物学分类的核心思想相似

实例

# 定义一个矩形为父类
class Rectangle():
    def __init__(self,length,breadth):
        self.length = length
        self.breadth = breadth
    def getArea(self):
        print self.length*self.breadth," is area of rectangle"

# 定义一个正方形为继承矩形的子类
class Square(Rectangle):
    def __init__(self,side):
        self.side = side
        Rectangle.__init__(self,side,side)
    # 重写父类方法
    def getArea(self):
        print self.side*self.side," is area of square"

s = Square(4)
r = Rectangle(2,4)
s.getArea()
r.getArea()

 Square继承了Rectangle的变量和方法,此时getArea函数应该是def getArea(self):
print self.length*self.breadth," is area of rectangle"
,接着调用了Square定义的getArea函数,使得原来从Rectangle函数继承的getArea无效,现在的getArea函数为
def getArea(self):
print self.side*self.side," is area of square"

优势

我们在新建类的时候就不用想很多很多名字,想名字也是一个头疼的事情

发布了86 篇原创文章 · 获赞 30 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_42672770/article/details/103955858