在Java中,除了访问权限之外,抽象类的抽象方法和接口的抽象方法之间有什么主要区别?请赐教。我使用的是Java7。
答案 0 :(得分:0)
技术上,abstract
类和interface
之间的方法或签名没有区别。但这些方法的使用有所不同。
public class Son extends AbstractChild , Father{//Cannot do as multiple inheritance not supported
}
public class Son extends AbstractChild implements Naughtiness, Cuteness{//Allowed}
根据JLS,接口的方法是public
和abstract
,正如您所提到的,接口的访问修饰符默认为public
。
然而,对于Java 8,界面是游戏规则改变者。接口将具有抽象类的相同功能,您可以使用该方法的默认实现。
有关详细信息,请参阅 - http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
答案 1 :(得分:0)
一方面,您有一些技术差异:
public abstract
extends
在实践中,开发人员使用它们来实现一些不同的功能:
annoy()
。 答案 2 :(得分:0)
抽象方法不包含默认实现,而是依赖于实现类。抽象方法以a结尾;并且不使用{},因为该方法不能包含实现。它的子类必须提供实现。抽象类可以有抽象和非抽象方法。抽象类的目的是隐藏内部细节并仅向用户显示实现。