title: 接口和抽象类有什么区别？
topic: Java
content: 接口和抽象类都是继承树的上层，他们的共同点如下： 1都是上层的抽象层。2都不能被实例化 3都能包含抽象的方法，这些抽象的方法用于描述类具备的功能，但是不比提供具体的实现。他们的区别如下： 1在抽象类中可以写非抽象的方法，从而避免在子类中重复书写他们，这样可以提高代码的复用性，这是抽象类的优势接口中只能有抽象的方法。2一个类只能继承一个直接父类，这个父类可以是具体的类也可是抽象类但是一个