相关疑难解决方法(0)

接口与抽象类(通用OO)

我最近接受过两次电话采访,其中我被问及接口和抽象类之间的区别.我已经解释了他能想到的每一个方面,但似乎他们在等我提一些具体的东西,我不知道它是什么.

根据我的经验,我认为以下是正确的.如果我错过了重点,请告诉我.

接口:

在接口中声明的每个单独的方法都必须在子类中实现.接口中只能存在事件,代理,属性(C#)和方法.一个类可以实现多个接口.

抽象类:

只有抽象方法必须由子类实现.Abstract类可以有实现的常规方法.Abstract类还可以在Events,Delegates,Properties和Methods旁边有类变量.由于C#中不存在多重继承,因此类只能实现一个抽象类.

  1. 毕竟,面试官想出了一个问题"如果你有一个只有抽象方法的抽象类怎么办?那么它与界面会有什么不同?" 我不知道答案,但我认为这是上面提到的继承权吗?

  2. 另一位采访者问我,如果你在界面中有一个Public变量,那么它与Abstract Class有什么不同?我坚持认为你不能在界面中有一个公共变量.我不知道他想听到什么,但他也不满意.

另见:

oop abstract-class interface

1372
推荐指数
30
解决办法
69万
查看次数

何时使用接口而不是抽象类,反之亦然?

这可能是一个通用的OOP问题.我想根据它们的用法在接口和抽象类之间进行一般性比较.

什么时候想要使用接口?何时想要使用抽象类

oop inheritance abstract-class interface

412
推荐指数
13
解决办法
31万
查看次数

Java中的抽象类与接口

我被问到一个问题,我想在这里查看我的答案.

问:在哪种情况下扩展抽象类而不是实现接口更合适?

答:如果我们使用模板方法设计模式.

我对么 ?

如果我无法清楚地陈述问题,我很抱歉.
我知道抽象类和接口之间的基本区别.

1)当需求需要在特定操作的每个子类中实现相同的功能(实现方法)和其他一些操作的不同功能(仅方法签名)时,使用抽象类

2)如果需要将签名设置为相同(并且实现不同),请使用接口,以便您可以遵守接口实现

3)我们可以扩展一个抽象类的最大值,但可以实现多个接口

重申一个问题:除了上面提到的那些之外,还有其他任何场景,具体我们需要使用抽象类(一个是模板方法设计模式在概念上仅基于此)吗?

接口与抽象类

在这两者之间做出选择真的取决于你想做什么,但幸运的是,对我们来说,Erich Gamma可以帮助我们一点.

一如既往地存在权衡,接口为您提供基类的自由,抽象类使您可以自由地在以后添加新方法. - Erich Gamma

无法在不改变代码中的许多其他东西的情况下更改接口,因此避免这种情况的唯一方法是创建一个全新的接口,这可能并不总是一件好事.

Abstract classes应主要用于密切相关的对象.Interfaces更好地为不相关的类提供通用功能.

java abstract-class design-patterns interface

79
推荐指数
7
解决办法
8万
查看次数

java中接口的实际用途是什么?

可能重复:
抽象类和接口类?
Java:接口/抽象类/抽象方法

在Java中,抽象类实现了对接口的任何使用.我知道接口的一个优点是,如果我们实现一个接口,那么我们也可以扩展另一个类.Java中是否有任何其他用途或优势?

java abstract-class interface

18
推荐指数
3
解决办法
8万
查看次数

纯抽象类和接口

任何人都可以告诉我完全抽象的类和接口之间究竟有什么区别?

Abstract类也可以将其所有方法都抽象化.接口的所有方法都是抽象的.在这种情况下,两者之间的主要区别是什么?

如果纯抽象类和接口之间有区别?界面有什么用?在使用接口的地方,我们可以使用纯抽象类?

java

15
推荐指数
4
解决办法
1万
查看次数

Java抽象类和接口

在采访中我被问到以下问题.我试着回答这个问题,但我想要问题的确切答案.

如果我可以将Abstract类模拟为Interface,为什么java提供了Interface?

这意味着如果在Abstract类中我可以将所有方法标记为抽象,然后抽象类将作为接口工作,那么为什么我需要接口.

任何人都可以简要解释一下.

java abstract-class interface class

12
推荐指数
1
解决办法
3727
查看次数

是否存在Abstract类优于Interface的情况

我有一个场景,其中有几个子类有类似的实现和一些额外的方法,实现与每个子类不同.我假设抽象类对于这种情况是一个不错的选择.但是如果抽象类实现包含所有方法声明的接口会更好.或者我应该坚持使用抽象类.

简而言之,我想知道我应该在层次结构顶部而不是接口上更喜欢抽象类的场景.

java abstract-class interface

7
推荐指数
2
解决办法
3871
查看次数

界面和抽象的公共功能

在我看来,这两个interfaceabstract function非常相似,

这就像一个必须实施某些方法的订单,

那有什么区别?

php interface abstract-function

1
推荐指数
1
解决办法
3853
查看次数