第一"使用的关键字不同",抽象类是“继承”所以用extends关键字,接口是“实现”所以用implements关键字
第二“结构组成”不同,抽象类就是在普通类的基础上额外多了一个抽象方法,而接口中只能含有抽象方法和全局常量(被final和default修饰的方法可以有具体的实现),接口中的方法默认被public abstract修饰 ,接口中的常量默认被public static final修饰 也就是说接口中的访问权限只能是public但是抽象类中可以是任意权限
第三“接口的存在解决了不能多继承的问题”,正常情况下一个类只能继承一个类,所以一个类只能继承一个抽象类,但是可以实现多个接口。
在这里打个比方比如抽象类是动物,那么接口就是能跑,能飞,能游泳,那么鸭子就可以继承动物这个抽象类,再去实现能跑,能飞,能游泳这三个接口,可以将动物共性完全抽取。
第四,抽象类可以实现多个接口,但是接口不能继承抽象类,但是接口可以跳过implements关键字实现多个父接口
Java中抽象类与接口的区别
1189

被折叠的 条评论
为什么被折叠?



