Java学习笔记之Python和Java中Super方法的区别

python 的 super 是一个函数,需要两个参数,第一个参数是类,第二个参数是实例,返回值是一个类对象。

其意义是:站在参数2这个实例的角度看去, 参数1这个类的‘父亲’是谁,把‘父亲’返回。

详情见这里。

Java 的 super 是一个引用,即一个指针,它指向的是本类内部的那个父类对象。

可以用 super.xxx 来访问父类的成员变量或成员函数。

另外 Java 的 super 有一个特殊用法,就是 super(args),看起来像个函数似的,其实不是。

这种特殊用法只限于写在构造函数的第一行,用来显示的调用父类的构造方法。 

因为构造方法是无法通过对象加点操作法来调用的,即 super.FaterConstructor() 是不合法的,所以 Java 用 super() 这种方式调用父类构造方法。

Java 对子类的构造方法的要求请看这里

=================================

Java 中想调用父类的方法,直接用 super.method() 即可

Python 中想调用父类的方法,需要用 super(本类名,self).method()

Java 如果想调用父类的构造方法,要用 super()

Python 调用父类的构造方法跟普通方法一样的,super(本类名,self).__init()__

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java学习

工程师笔试题1

1.访问修饰符作用范围由大到小是( )。 A.private-protected-default-publicB.public-protected-defaul...

2584
来自专栏ios 技术积累

swift 函数

下面定义名称 sayHello 的函数,只有一个 String 类型的 name 参数,函数返回值为 String 类型。

603
来自专栏逻辑熊猫带你玩Python

Python | 6大数据类型方法归纳总结(中)

可以直接使用tuple()创建一个新的元组,或者,使用tuple()将一个对象转换成元组。

964
来自专栏java一日一条

ava enum(枚举)使用详解 + 总结

enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。

713
来自专栏逻辑熊猫带你玩Python

Python | 6大数据类型方法归纳总结(下)

可以直接使用list()创建一个新的列表,或者,使用list()将一个对象转换成列表。

1243
来自专栏Golang语言社区

Go语言——再论slice切片

Slice是长度可变的元素序列(数组不可变),每个元素都有相同的类型。slice类型写作[]T,其中T代表slice中的元素类型;slice和数组写法很像,只是...

35516
来自专栏java一日一条

int 和 Integer 的区别与作用

int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之一。 JAVA语言为八大基本数据...

681
来自专栏柠檬先生

python基础 面向对象编程

面向对象编程的基本思想   类和实例     类用于定义抽象类型     实例根据类的定义创建出来 python 定义类并创建实例   在python 中,通过...

2554
来自专栏Pythonista

golang之数组

3.长度是数组类型的一部分,因此,var a[5] int 和 var a[10]int 是不同的类型

961
来自专栏一“技”之长

Swift讲解专题五——集合类型 原

        Swift中提供了3种集合类型,Array数据类型,Set集合类型,Dictionary字典类型。Array用于存放一组有序的数据,数据角标从0...

673

扫码关注云+社区