我开始使用名为ILogin的通用接口.接口要求您实现两个属性:UserID和Password.我有许多实现此接口的登录类型.随着我的项目的成长和发展,我发现许多类重复了UserID和Password代码.现在我决定我需要一个基本的登录类.
创建一个实现ILogin接口的抽象基类Login类是否合适,并且所有具体类都是从抽象类继承并在必要时覆盖?最初我觉得这没问题.然后我开始认为ILogin可能不需要,因为它可能只能由我的抽象类实现.
保持抽象类和接口都有好处吗?
谢谢!
当然.让我们想一个具体的例子.
假设我们有一个抽象类Animal
.再说了,我们做了一些子类Cat
,Dog
,Mosquito
,和Eagle
.我们可以实现它Eat()
,Breathe()
,Sleep()
抽象类的方法Animal
.
到现在为止还挺好.现在,假设我们想要和类一起使用Fly()
方法.由于这两种生物并不是真正相关的(一种是鸟类,另一种是昆虫),因此我们可以将这两种生物作为一个抽象的类来提出共同的祖先并不容易.这最好通过接口实现.Mosquito
Eagle
IFly
该IFly
接口可以具有Fly()
被实现的方法.既Mosquito
和Eagle
类都可以是抽象类的子类Animal
,并实现接口IFly
,并能够Eat()
,Breathe()
,Sleep()
和Fly()
,而无需某些类型的两个类之间奇数ancenstral关系.