本文主要介绍Jython中单继承和多继承的实例分析,非常详细,具有一定的参考价值。感兴趣的朋友一定要全部看完!
Jython的继承
类继承能力是面向对象编程的基础。Jython支持单继承和多继承。单一继承意味着只有一个父类,多重继承意味着可以有多个父类。
继承是通过派生其他类来实现的。这些类可以是其他Jython类或Java类。您可以从任意数量的纯Jython类或Java实例中派生,但是您只能(直接或间接)继承一个Java类。不需要父类。
父类中的所有属性或方法都存在于所有子类中,并且可以由类本身或所有客户使用(假设它是一个公共变量)。只要可以使用父类的实例,子类的所有实例都可以使用——下面是多态性的一个例子。这些功能使得重用、快速开发和轻松扩展成为可能。
以下是一些继承的例子:
class 1: pass # no inheritance class 2: pass class 3(class 1): pass # single inheritance class 4(class 3,class 2): pass # multipleinheritance from javaimportwtfrom javaimportio # inheritavaclasseandterfacandjythonclassmypanel(awt。面板,io。可序列化,类别2):Jython的继承——将类作为值使用
您也可以将类分配给变量(包括函数参数)。这使得编写基于类的动态代码变得非常容易,这可以从下面的泛型类实例工厂中看出:
define stance maker(xclass,*args):returnapply(xclass,args): x=instance maker(my class)# same as : x=my class()Jython的继承——带继承的 init 方法
子类的__init__方法必须调用由其父类定义的所有__init__方法,这不会自动发生。以下两个示例显示了如何使用带有继承的__init__方法。
class 1(super class): def _ _ init _ _(self): # noargumentsuper class。_ _ init _ _(self)# initmysuper-class self . data=[]# setimplicitdataclass 2(SuperClass): def _ _ init _ _(self,v1,v2): # 2 requiredargumentsnbsp
; 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中单继承和多继承的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/150506.html