python多继承构造方法(python类的继承)

技术Jython中单继承和多继承的示例分析这篇文章主要介绍Jython中单继承和多继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Jython的继承类继承的能力是面向对象编程的基础。J

本文主要介绍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

(0)

相关推荐

  • MySQL如何在线开启/关闭GTID

    技术MySQL如何在线开启/关闭GTID小编给大家分享一下MySQL如何在线开启/关闭GTID,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一

    攻略 2021年11月6日
  • 怎样浅谈Java Servlets与CGI程序

    技术怎样浅谈Java Servlets与CGI程序怎样浅谈Java Servlets与CGI程序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从网络的早期阶

    攻略 2021年11月20日
  • 将全站进行HTTPS化优势是什么

    技术将全站进行HTTPS化优势是什么本篇文章为大家展示了将全站进行HTTPS化优势是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在HTTPS项目的开展过程中明显感觉到目前国

    攻略 2021年11月12日
  • 如何实现VB.NET文件流读、写类文件

    技术如何实现VB.NET文件流读、写类文件这篇文章主要介绍如何实现VB.NET文件流读、写类文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET文件流代码:Option Explicit

    攻略 2021年12月2日
  • VMware虚拟机安装Mac操作系统

    技术VMware虚拟机安装Mac操作系统 VMware虚拟机安装Mac操作系统Mac虚拟机安装教程
    工具/原料vmware虚拟机苹果破解补丁(unlocker208)VMwareWorkstation苹

    礼包 2021年12月17日
  • 数据库tempdb已满(tempdb数据库空间不足)

    技术为什么无法为数据库 tempdb中的对象分配空间本篇文章为大家展示了为什么无法为数据库 tempdb中的对象分配空间,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。错误描述消息

    攻略 2021年12月14日