2011-10-31 52 views
1

我真的很困惑,而且我已经阅读了关于该主题的TON问题,并且我无法专门指出接口可以做什么,抽象类无法做到。抽象类,构造函数和接口

+0

有很多这样的问题的答案。你最好在已经回答的问题中提问。简单的回答,但:接口是实现的,而不是继承。 Java没有多重继承,但可以实现多个接口。 – merryprankster

+0

@merryprankster - 你不能问一个问题的问题,只能回答它。低代表用户无法评论现有的问题/答案。 – Flexo

回答

9

一个类可以实现多个接口,但不能实现多个抽象类。

+1

实现抽象类?应该延长..? –

+0

@KugathasanAimaimaran是对的。 – RockyMM

0

一个抽象类可以接口可以做的所有事情。然而,这是不正确的。

+0

不是,你错过了这一点。接口就像一个合同。抽象类更具体一些。 – RockyMM

0

抽象类可以包含抽象方法,抽象属性以及其他成员(就像普通类一样)。 接口只能包含抽象方法,属性,但我们不需要放置抽象和公共关键字。 Interface中定义的所有方法和属性默认为public和abstract。 我们可以看到抽象类包含私有成员,我们也可以把一些方法与实现也一起。但是在接口的情况下,只允许方法和属性

2

抽象类还可以包含功能实现,而不是仅仅规定必须由继承类

3

接口本身不能做任何事情来实现的功能。它只是定义了提供某些功能的类和调用者之间的契约类型。

抽象类是定义为abstract的类。如果类至少有一个抽象方法(即没有实现的方法),它必须被定义为抽象。但是抽象类也可以包含实现。

接口不能包含实现。只有抽象方法和常量(静态最终字段)。

类可以实现多个接口并只扩展一个类(包括抽象类)。

我希望这会有所帮助。

0

接口和抽象类几乎都是一样的使用接口的主要区别是我们无法定义方法的主体,但使用抽象类我们可以在抽象类内部或在实现它时定义方法的主体。 e.g

Interface abc() 
{ 
string xyz(); 
} 

abstract abc() 
{ 
string xyz() 
{ 
// define body 
} 
} 
or 
abstract abc() 
{ 
string xyz(); 
} 
0

一个抽象类是一类 - 它定义的一些行为一类对象的实现的全部或部分,但对具体子类提供一些扩展点。

接口是一种类型 - 它定义了由实现接口的任何类提供的操作集合。

你几乎在问是否有任何候选人可以做的工作描述不能。创建一个抽象类说'这是一些实现的模板'。创建一个接口说'我期待一个对象提供这些功能'。您可以在抽象类中使用虚拟方法来实现类型的某些方面,但意图是不同的。

1

抽象类是部分实现的类,将通过具体类(非抽象)进行扩展,以实现。

实施例: enter image description here

这个例子并不意味着该子类必须实现那些方法(因为它实现接口时发生)。你可以声明一个子类摘要,并且稍后将由其他子子类完成实现。 (例如:船可以具有“SpeedBoat”和FisshingBoat的子类,并且可以以不同方式实施honk())

界面是类对外界的眼睛。哪些类可以在界面中声明,但在类中实现。

一个类可以实现多个接口,但只能扩展一个类。 见的接口这个小例子:

enter image description here

正如你可以看到,当我们使用接口,我们可以有很多的灵活性。有些敌人可以做一些英雄也可以做的事情(DarkKnight可以投掷箭头)。 我希望你现在感受到抽象类和接口的区别。

记住这个关于接口和抽象类:

  • 接口不要有变数,只是未实现的方法(抽象方法隐含的)

  • 类实现接口必须有接口的所有方法在其身上

  • 一个类只能扩展一个类但实现多个接口

  • 如果一个类有一个抽象方法,它必须被声明为抽象的。

  • 抽象类可以实现接口

  • 接口可以扩展其他接口(不止一个)

我不知道如果我忘了什么东西,我希望这个信息帮助。