中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jython中單繼承和多繼承的示例分析

發布時間:2021-12-17 17:42:23 來源:億速云 閱讀:201 作者:小新 欄目:編程語言

這篇文章主要介紹Jython中單繼承和多繼承的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Jython的繼承

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

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

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

下面是一些繼承的例子:

class Class1: pass # no inheritance   class Class2: pass  class Class3(Class1): pass # single inheritance   class Class4(Class3,Class2): pass # multiple inheritance   from java import awt  from java import io   # inherit a Java class and interface and a Jython class  class MyPanel(awt.Panel, io.Serializable, Class2):       :

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

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

def instanceMaker(xclass, *args):      return apply(xclass, args)   :   x = instanceMaker(MyClass) # same as: x = MyClass()

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

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

class Class1(SuperClass):      def __init__ (self):            # no arguments        SuperClass.__init__(self)     # init my super-class        self.data = []                # set implicit data   class Class2(SuperClass):      def __init__ (self, v1, v2):    # 2 required arguments        SuperClass.__init__(self, v1) # init my super-class with v1        self.v2 = v2

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

class Class1(Super1, Super2):      def __init__ (self):             # no arguments        Super1.__init__(self)          # init each super-class        Super2.__init__(self)        self.data = []                 # set implicit data   class Class2(Super1, Super2):      def __init__ (self, v1, v2, v3): # 3 required arguments        # note you may do work before calling the super __init__ methods        self.v3 = v3                   # set data from parameter        Super1.__init__(self, v1)      # init each super-class        Super2.__init__(self, v2)

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

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

class Class1:      def method1 (self):         :   class Class2(Class1):      def method1 (self): # override method1        :        Class1.method1(self) # call my super-class method        :       def method2 (self):         :   class Class3(Class2):      def method1 (self): # override method1        :        Class2.method1(self) # call my super-class method        :       def method3 (self):         :

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

Jython的繼承——調用方法

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

mci.someMethod(...)   MyClass.someMethod(mci, ...)

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

以上是“Jython中單繼承和多繼承的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通江县| 卓尼县| 吉安市| 西青区| 板桥市| 静宁县| 昆明市| 荥阳市| 辉南县| 金平| 会宁县| 金秀| 资兴市| 南投市| 浦江县| 长沙市| 海晏县| 航空| 南陵县| 南川市| 巴林右旗| 南丰县| 凤山县| 海口市| 文山县| 吴忠市| 巩留县| 莎车县| 连平县| 全南县| 航空| 田东县| 连州市| 萝北县| 漾濞| 古蔺县| 齐齐哈尔市| 乐清市| 嵩明县| 和平区| 宿松县|