猿问

请问何时使用抽象类或接口?

何时使用抽象类或接口?

为什么要创建抽象类或接口类,或者何时应该使用抽象类或接口类?


一只萌萌小番薯
浏览 524回答 3
3回答

largeQ

当您只想声明类必须具有哪些方法和成员时,使用接口。任何实现该接口的人都必须声明并实现该接口列出的方法。如果您还想要一个默认实现,请使用抽象类。扩展抽象类的任何类都必须只实现其抽象方法和成员,并且将具有抽象类的其他方法的一些默认实现,您可以覆盖或不覆盖它们。--EDIT - 忘了提,Earwicker提醒我最后,您可以根据需要实现任意数量的接口,但只能扩展一个类(无论是抽象的还是抽象的)。在选择之前请记住这一点。

阿晨1998

关键的区别在于,您可以implement在一个类中使用多个接口,但只能extend使用一个抽象类。这是因为抽象类还可以定义存储数据的字段,而接口则不能。

智慧大石

抽象类是一个类,它至少有一个抽象方法,或者你也可以将所有方法都作为抽象方法。显然它无法实例化。您必须从一个抽象类继承并在继承类中实现抽象方法(即扩展抽象类的类)。接口根本不是类(因此不要将它们称为接口类)。接口定义方法的签名而无需任何实现。接口也没有成员字段。如果在类中实现接口,则必须为接口提供的所有方法提供实现。为某些东西定义一个通用API是有意义的,它可以有完全不同的实现。抽象类对于主要相同的类更有用,但有一些细微的差别。您可以将两种方法结合起来一个很好的例子是Java类库的集合框架。您有接口List,它定义了Lists的行为方式。一些实现例如是ArrayList和LinkedList。因为它们的行为相似,所以两者都相同的东西在抽象类AbstactList中实现,都继承了它。
随时随地看视频慕课网APP

相关分类

Java
我要回答