抽象类与接口的区别
比较项目 | 抽象类 | 接口 |
---|---|---|
默认的方法实现 | 可以有默认的方法实现 | 完全不能有实现 |
构造器 | 可以有 | 不能有 |
实现 | 使用extends 继承抽象类 | 使用Implements实现接口 |
与正常Java类的区别 | 除了不能实例化,和普通的java类没有区别 | 不是类 |
访问修饰符 | 可以是public,protected,private | 只能是public,或默认 |
main 方法 | 可以有 main 方法 | 不能有main方法 |
多继承 | 继承一个类或者实现多个接口 | 继承一个类或者实现多个接口 |
访问速度 | 较快 | 慢,需要查找方法 |
添加新的方法 | 可以为之添加默认的方法实现,不必修改派生类 | 必须修改接口的实现类 |
抽象类使用场景:如果多个类,然后有默认的实现。
多继承:接口
不断改变类扩展类的功能:使用抽象类
如果功能不再改变,使用接口
网友评论