2012-01-09 122 views
0

可能重复:
When to use abstract class or interface?抽象类V/s接口

我在Java中的新手,任何人都可以请解释一下这样一个场景,抽象类将是 有用和界面不会,反之亦然。 我相信不是那么复杂的问题都可以同样轻松地解决问题。 请用外行人的名义解释,请原谅我的无知!

回答

2

当我们创建一个接口时,我们基本上创建了一组方法,没有任何必须被实现的类覆盖的实现。其优点是它为类提供了一种方法,使其成为两个类的一部分:一个来自继承层次结构,另一个来自接口。

当我们创建一个抽象类时,我们正在创建一个基类,它可能有一个或多个已完成的方法,但至少有一个或多个方法未完成并声明为抽象。如果抽象类的所有方法都未完成,则它与接口相同。抽象类的目的是为一组派生类的工作方式提供基类定义,然后允许程序员在派生类中填充实现。

+0

我对以下逻辑感到震惊 - “为什么要使用抽象类,而不是每次都使用接口,从而维持类的扩展能力,以便在使用抽象类的情况下扩展另一类。”任何真实生活设计示例会很好用! – user1138406 2012-01-09 10:20:52