您当前的位置: 首页 >  Python

Peter_Gao_

暂无认证

  • 3浏览

    0关注

    621博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python 的继承之override方法重写

Peter_Gao_ 发布时间:2020-01-13 12:12:59 ,浏览量:3

什么是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"

优势

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

关注
打赏
1664521772
查看更多评论
立即登录/注册

微信扫码登录

0.2605s