| 抽象类 | 接口 |
方法默认实现 | 支持 | 不支持,接口完全是抽象的 |
实现 | 子类使用extends关键字来继承抽象类。子类如果不是抽象类,需要实现抽象类中声明的所有抽象方法 | 子类使用关键字implements来实现接口,需要实现接口中声明的所有方法 |
是否有构造函数 | 是 | 否 |
与正常Java类的区别 | 不能实例化抽象类,因为有abstract方法 | 接口是完全不同的类型 |
访问修饰符 | public、protected和default | 只有public |
main方法 | 支持 | 不支持 |
多继承 | 继承一个类和实现多个接口 | 只可以继承一个或多个其它接口 |
速度 | 速度快 | 稍微有点慢,因为它需要时间去寻找在类中实现的方法 |
添加新方法 | 添加后可以给它提供默认的实现,故不需要改变现在的代码 | 添加后必须改变实现该接口的类 |
抽象类与接口的区别
最新推荐文章于 2024-06-14 22:39:53 发布