python继承

继承是面向对象的重要特征之一,继承是两个类或者多个类之间的父子关系,子进程继承了父进程的所有公有实例变量和方法。继承实现了代码的重用。重用已经存在的数据和行为,减少代码的重新编写,python在类名后用一对圆括号表示继承关系, 括号中的类表示父类,如果父类定义了__init__方法,则子类必须显示地调用父类的__init__方法,如果子类需要扩展父类的行为,可以添加__init__方法的参数。

下面演示继承的实现

class Fruit:
      def __init__(self, color):
           self.color = color
           print "fruit's color: %s" %self.color

      def grow(self):
           print "grow..."

class Apple(Fruit):                               #继承了父类
      def __init__(self, color):                  #显示调用父类的__init__方法
           Fruit.__init__(self, color)
           print "apple's color: %s" % self.color

class Banana(Fruit):                              #继承了父类
      def __init__(self, color):                  #显示调用父类的__init__方法
           Fruit.__init__(self, color)
           print "banana's color:%s" %s self.color

      def grow(self):                             #覆盖了父类的grow方法
           print "banana grow..."

if __name__ == "__main__":
apple = Apple("red")
apple.grow()
banana = Banana("yellow")
banana.grow()

输出结果:

           fruit‘s color : red

           apple's color : red

 

           grow...

 

           fruit's color : yellow

           banana's color : yellow

           banana grow...

时间: 2024-08-17 14:05:59

python继承的相关文章

python继承和抽象类的实现方法_python

本文实例讲述了python继承和抽象类的实现方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: #!/usr/local/bin/python # Fig 9.9: fig09_09.py # Creating a class hierarchy with an abstract base class.   class Employee:    """Abstract base class Employee"""      d

方法-python继承的一个简单问题

问题描述 python继承的一个简单问题 python为什么我继承了Threading的Thread方法, class myThread(threading.Thread): def __init__(self,threadname): threading.Thread.__init__(self,name=threadname) 这就是问题为什么还要 调用初始化一下?. 初始化,能达到什么效果,就是这句话有什么用途?或者 我不初始化有什么差别? java里面 不需要这样呀?python这样写是

Python中类的继承

在软件设计里,代码的复用和代码稳定性,一直是软件开发的重要目标之一,因为只有这样才能积累各种基础组件,以及维护以前做过的工作.从复用的特性来说,就是利用以前做过的工作,比如就像硬件里的IC一样,不需要知道它是怎么样实现的,只要使用它就行了.因而软件也需要有这种IC,在代码层次里的IC,以前看来只是用函数的方式复用,或者只是数据结构的复用.当迈进面向对象编程时代时,自然而然地想到就使用类来复用了,这样数据结构和函数都同时能复用上,比函数的复用更省心了一步,就是数据结构和算法都不需要关心了,只关心类

Python类继承的实现

代码: #! /usr/bin/python # Filename: inherit.py # Author: yanggang class SchoolMember: def __init__(self,name,age): self.name = name self.age = age print 'init SchoolMember: ', self.name def tell(self): print 'name:%s; age:%s' % (self.name, self.age) c

用实例解释Python中的继承和多态的概念_python

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is running...' 当我们需要编写Dog和Cat类时,就可以直接从Animal

java的继承初始化

我们有必要对整个初始化过程有所认识,其中包括继承,对这个过程中发生的事情有一个整体性的概念.请观察下述代码:   //: Beetle.java // The full process of initialization. class Insect { int i = 9; int j; Insect() { prt("i = " + i + ", j = " + j); j = 39; } static int x1 = prt("static Inse

用 Python 实现一个最简单的对象模型

本文讲的是用 Python 实现一个最简单的对象模型, 一个简单的对象模型 Carl Friedrich Bolz 是一位在伦敦国王大学任职的研究员,他沉迷于动态语言的实现及优化等领域而不可自拔.他是 PyPy/RPython 的核心开发者之一,于此同时,他也在为 Prolog, Racket, Smalltalk, PHP 和 Ruby 等语言贡献代码.这是他的 Twitter @cfbolz . 开篇 面向对象编程是目前被广泛使用的一种编程范式,这种编程范式也被大量现代编程语言所支持.虽然大

python多重继承实例_python

本文实例讲述了python多重继承用法,分享给大家供大家参考.具体实现方法如下: 1.mro.py文件如下: #!/usr/bin/python # Filename:mro.py class P1: def foo(self): print 'called P1-foo' class P2: def foo(self): print 'called P2-foo' def bar(self): print 'called P2-bar' class C1(P1, P2): pass class

python3 类的属性、方法、封装、继承及小实例

Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. python类与c++类相似,提供了类的封装,继承.多继承,构造函数.析构函数. 在python3中,所有类最顶层父类都是object类,与java类似,如果定义类的时候没有写出父类,则object类就是其直接父类.  类定义 类定义语法格式如下: class ClassName:    <state