gpt4 book ai didi

java - python和java继承差异概述

转载 作者:太空狗 更新时间:2023-10-30 02:34:37 25 4
gpt4 key购买 nike

我有 java 背景,正在学习 python。我很快就需要使用继承,并且我想找出它们各自的工作方式之间的关键区别。我在网上看了看,发现了一些关于两者之间的差异以及需要注意什么的信息,我发现 python 支持多重继承,但我想知道任何其他特定于继承的差异。我不需要被告知语法(除非有什么我真的需要注意的地方),我已经看过了,我会接受的。

Python is not Java
Python classes: Multiple Inheritance
Python for Java programmers

我真的找不到我要找的东西,它是对差异的概述以及需要注意的地方。

最佳答案

Java 有一个相当简单的继承模型:类必须有一个(而且只有一个)父类。你不能从多个父类继承,尽管你可以实现多个接口(interface),这可以看作是 Java 版本的“多重继承”。

Java 类中的大多数方法都是动态(后期)绑定(bind)的,除了在父类中声明为 staticprivatefinal 的方法类。

在 Python 中,正如您所注意到的,您可以从多个(或没有)父级继承。请注意,通过多重继承,您可以获得“diamond problem”。当您在 Python 中引用父类时,您应该知道 Python 如何解决这个问题以及它的含义(即:谁是你爸爸?)

在 Python 中,一切都是动态绑定(bind)的,并且由于您可以向一个实例添加成员,因此不能保证同一类的所有实例都具有相同的成员。

最后,构造函数的覆盖方式略有不同:在 Java 中,子类必须调用父类的构造函数(精化覆盖),而在 Python 中,子类可以覆盖构造函数而不调用父级的构造函数(替换覆盖)。

关于java - python和java继承差异概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com