抽象类与接口的区别

抽象类

抽象类体现的是“模板思想”

模板设计的作用:优化代码的架构,提高代码的复用性,相同功能的代码无需重复书写、可以做到部分实现,部分 抽象,抽象的部分可以交给使用模板的人来实现。

抽象类:有抽象方法的类一定是抽象类 抽象类不一定有抽象方法

抽象类就是要被继承 要不然就失去了意义

抽象类要用abstract修饰

抽象方法也要用abstract修饰

抽象类不能创建对象

如果一个类继承抽象类 那么它必须重写抽象类中的抽象方法,否则该类也必须定义为抽象类。

接口

接口体现的是“规范思想”,是更加彻底的抽象。

实现接口的类必须重写接口中的全部抽象方法

在JDK1.8之前 接口中只能包括 常量 和抽象方法

在JDK1.8之后 接口不再纯洁了,新增了三种方法 :默认方法 静态方法 私有方法

注意:接口中 抽象方法的修饰符 public abstract 可省略,常量 public static final 可省略

默认方法要用default修饰 只能用实现类的对象来调用

私有方法使用private修饰 供接口中的默认方法和私有方法来调用

静态方法只能通过接口名称调用

实现接口的股关键字:implements

优先级问题

当一个类继承了一个父类 又实现了一个接口时 接口和父类中默认方法重名 子类对象就近执行父类的成员方法。

小结

类与类是单继承

接口与接口是多继承

类与接口是多实现

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容