Python面试题之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()__

 

参考

 

posted @   时光飞逝,逝者如斯  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示