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()__
参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?