成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jython的繼承能力:單繼承和多繼承

開發 后端
本文介紹做為面向對象語言的Jython的繼承能力。Jython 支持單繼承和多繼承。

Jython的繼承

類繼承的能力是面向對象編程的基礎。Jython 支持單繼承和多繼承。單繼承 意味只有一個父類,多繼承 意味著可以有多個父類。

繼承是通過派生其他類實現的。這些類可以是其他 Jython 類,也可以是 Java 類。可以從任何數量的純 Jython 類或者 Java 實例派生,但是只能(直接或者間接)繼承一個 Java 類。不需要提供一個父類。

父類中的所有屬性或者方法都存在于所有子類中,并可以被類自身或者所有客戶使用(假定它是 publicly 變量)。在可以使用父類的實例的所有地方都可以使用子類的所有實例 ―― 下面是 多態 的一個例子。這些功能使重用、快速開發和容易擴展成為可能。

下面是一些繼承的例子:

  1. class Class1: pass # no inheritance  
  2.  
  3. class Class2: pass 
  4.  
  5. class Class3(Class1): pass # single inheritance  
  6.  
  7. class Class4(Class3,Class2): pass # multiple inheritance  
  8.  
  9. from java import awt  
  10. from java import io  
  11.  
  12. # inherit a Java class and interface and a Jython class  
  13. class MyPanel(awt.Panel, io.Serializable, Class2):   
  14.     :  
  15.  

Jython的繼承——將類作為值使用

還可以將類賦值給變量(包括函數參數)。這使編寫基于類的動態代碼相當容易,可以從下面的通用類實例工廠看到這一點:

  1. def instanceMaker(xclass, *args):  
  2.     return apply(xclass, args)  
  3.  
  4. :  
  5.  
  6. x = instanceMaker(MyClass) # same as: x = MyClass()  

Jython的繼承——帶繼承的 init 方法

子類的 __init__ 方法必須調用其父類定義的所有 __init__ 方法,這不會自動進行。下面的兩個例子展示了如何使用帶繼承的 __init__ 方法。

  1. class Class1(SuperClass):  
  2.     def __init__ (self):            # no arguments  
  3.       SuperClass.__init__(self)     # init my super-class  
  4.       self.data = []                # set implicit data  
  5.  
  6. class Class2(SuperClass):  
  7.     def __init__ (self, v1, v2):    # 2 required arguments  
  8.       SuperClass.__init__(self, v1) # init my super-class with v1  
  9.       self.v2 = v2  

下面是一些帶多繼承的初始化的例子:

  1. class Class1(Super1, Super2):  
  2.     def __init__ (self):             # no arguments  
  3.       Super1.__init__(self)          # init each super-class  
  4.       Super2.__init__(self)  
  5.       self.data = []                 # set implicit data  
  6.  
  7. class Class2(Super1, Super2):  
  8.     def __init__ (self, v1, v2, v3): # 3 required arguments  
  9.       # note you may do work before calling the super __init__ methods  
  10.       self.v3 = v3                   # set data from parameter  
  11.       Super1.__init__(self, v1)      # init each super-class  
  12.       Super2.__init__(self, v2)  

Jython的繼承——調用父類方法

可以使用類名限定調用所有父類方法,如下所示:

  1. class Class1:  
  2.     def method1 (self):   
  3.       :  
  4.  
  5. class Class2(Class1):  
  6.     def method1 (self): # override method1  
  7.       :  
  8.       Class1.method1(self# call my super-class method  
  9.       :  
  10.  
  11.     def method2 (self):   
  12.       :  
  13.  
  14. class Class3(Class2):  
  15.     def method1 (self): # override method1  
  16.       :  
  17.       Class2.method1(self# call my super-class method  
  18.       :  
  19.  
  20.     def method3 (self):   
  21.       :  
  22.  

注意,次要的方法定義(在 Class2 和 Class3 中)覆蓋了父類定義。不要求子類方法調用其父類方法,不過,如果它不這樣做,那么它就必須完整地替換父類方法的函數。

Jython的繼承——調用方法

有兩種調用方法的語法(假定有一個由變量 mci 引用的 MyClass 實例):

  1. mci.someMethod(...)   
  2. MyClass.someMethod(mci, ...) 

***種形式通常用于類客戶編碼中,而第二種形式更常用于在子類中調用父類方法。

【編輯推薦】

  1. 常用Jython方法介紹:init和del
  2. 介紹Jython類:添加定義類屬性及隱藏變量
  3. Jython中的對象——面向對象的語言概述
  4. 在Eclipse下配置Jython的簡易流程
  5. 使用Jython腳本管理WebSphere資源
責任編輯:yangsai 來源: 網絡
相關推薦

2011-08-24 13:56:27

JavaScript

2013-05-29 10:23:36

Android開發移動開發Java面試題

2009-12-16 13:53:51

Ruby多繼承

2017-08-03 15:54:50

Kotlin繼承

2015-05-25 09:45:16

Java多繼承深入解析

2009-07-08 17:42:26

this屬性

2009-06-16 10:20:05

多繼承C#

2009-07-02 09:40:14

Hibernate的繼

2009-11-03 13:54:55

VB.NET繼承

2011-07-07 13:39:14

Cocoa 框架

2012-02-02 16:13:29

HibernateJava

2012-02-14 09:45:02

JavaScript

2011-08-31 14:48:33

JavaScript

2017-07-21 09:40:35

Python類、繼承和多態

2025-06-11 10:00:00

多繼承MixinPython

2009-07-08 17:51:45

constructor

2009-07-08 17:48:18

prototype屬性

2011-05-25 16:23:35

Javascript類繼承

2011-07-08 10:25:55

JavaScript

2014-03-28 11:08:16

Java 8多重繼承
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合天天天天做夜夜夜夜做 | 亚洲欧美激情精品一区二区 | 奇米超碰| 国产精品视频综合 | 色综合99| 极情综合网 | 国产一区二区不卡 | 亚洲高清在线 | 日本久久网站 | 日韩av成人在线观看 | 国产成人精品午夜 | 一区二区三区四区在线 | 欧美福利久久 | 中文字幕一区在线观看视频 | 在线观看av网站 | 精品99在线 | 久色一区 | 国产成人短视频在线观看 | 中文字幕亚洲区一区二 | 亚洲综合第一页 | 麻豆久久久久久久久久 | 国产精品九九九 | 亚洲 中文 欧美 日韩 在线观看 | 9191在线播放 | 91在线精品秘密一区二区 | 亚洲精品美女在线观看 | av成年人网站| 可以免费观看的av片 | 99在线精品视频 | 99热.com| 国产精品不卡一区 | 成人免费在线观看 | 国产欧美精品一区二区色综合朱莉 | 成人深夜福利 | 91精品国产色综合久久不卡蜜臀 | 在线观看精品 | 国产精品久久久久久久久久妇女 | 国内精品视频 | 久久久久久影院 | 亚洲欧美在线观看 | 欧美精品一区二区在线观看 |