gpt4 book ai didi

java - 'interface'是Java中 'abstract'的限制版本吗?

转载 作者:行者123 更新时间:2023-11-30 07:27:44 26 4
gpt4 key购买 nike

我正在学习C++,并一直在尝试练习面向对象编程。我使用的许多引用资料都是 Java 教程的形式。

我注意到的一件事是 Java 中存在“抽象类”和“接口(interface)”的概念。我很困惑为什么会有其中两个。看起来您可以使用接口(interface)执行的所有操作都可以与抽象类执行相同的操作。

所以我的问题:Java 中的接口(interface)是否提供任何附加功能?或者它只是指定抽象类不应允许继承类实现自己的方法/数据成员的一种方式?

最佳答案

Java 不允许多重继承。这意味着单个子类不能有多个父类。然而,一个类可以“实现”多个接口(interface)。这允许您实现多重继承。

在Java 1.8版本之前,抽象类和接口(interface)之间的主要区别是,你不能在接口(interface)中定义方法,但可以在抽象类中定义方法。但 Java 8 允许在接口(interface)本身中实现“默认”和“静态”方法。

至于你的问题,如果你继承一个抽象类,那么Java将强制你要么在子类中实现父类的抽象方法或者将子类本身声明为抽象类。因此,如果子类继承抽象类,则子类可以自由声明和定义它自己的方法和数据成员。它还可以重写父抽象类的方法。

接口(interface)和抽象类的使用取决于您的需要。但一般来说,使用接口(interface)更好。

关于java - 'interface'是Java中 'abstract'的限制版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36587355/

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