Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 接口和抽象类之间有什么区别? 重复:_Oop_Interface_Abstract Class - Fatal编程技术网

Oop 接口和抽象类之间有什么区别? 重复:

Oop 接口和抽象类之间有什么区别? 重复:,oop,interface,abstract-class,Oop,Interface,Abstract Class,可能是最著名的软件开发人员面试问题之一 你的答案是什么 编辑:我想知道在现实生活中你会如何回答这个问题。请尝试制定你的答案,就像你在一次真正的工作面试中所完成的,但是不要太长,没有链接。当然, 我会说,差异是语言依赖的,但是C++中至少抽象类是实现接口的手段。接口不能,或者,在C++中不应该。 中,接口是一个定义良好的句法元素,C++中只是一种设计模式。 至于求职面试,我一直听说关键是接口是合同;接口,而不是实现它本身,保证功能。接口只描述其方法等的实际签名。实现该接口的任何类都必须提供显式实现

可能是最著名的软件开发人员面试问题之一

你的答案是什么


编辑:我想知道在现实生活中你会如何回答这个问题。请尝试制定你的答案,就像你在一次真正的工作面试中所完成的,但是不要太长,没有链接。当然,

我会说,差异是语言依赖的,但是C++中至少抽象类是实现接口的手段。接口不能,或者,在C++中不应该。


中,接口是一个定义良好的句法元素,C++中只是一种设计模式。

至于求职面试,我一直听说关键是接口是合同;接口,而不是实现它本身,保证功能。

接口只描述其方法等的实际签名。实现该接口的任何类都必须提供显式实现


抽象类可以包含其方法等的部分实现。

接口提供必须由类实现的方法的定义。接口的目的是允许您概括特定的功能,而不管实现如何。您可能有一个具有打开/关闭方法的IDatabase接口。实现该接口的类可能连接到MySQL数据库或MS Access数据库。无论它如何完成这项任务,目标都是一样的……打开数据库,关闭数据库

抽象类是包含一些抽象方法的基类。它们不能被实例化,它们将从中派生。抽象类的目的是允许您定义一些通用功能和子类,以便在适当的情况下实现更具体的功能

总之,当每个类的实现完全不同时,应该使用接口。当您有一些类似的行为,但需要以不同的方式实现部分时,请使用抽象类


希望这能有所帮助。

我不想听起来像是当地问题解决民兵的成员,但这里已经讨论了无数次了。完全同意;以前被问过很多次。好吧,这个问题是关于有什么区别,而另一个问题是你什么时候会使用其中一个或另一个-这是不同的,足以证明它自己的问题…@DevSolar:这个问题的细微变化出现了很多次,不仅仅是引用了一个…答案是作为一个答案给出的现在的回应。我知道这并不是详尽无遗的,但这是我特别想到的。