0
点赞
收藏
分享

微信扫一扫

Java容器高频面试题汇总

草原小黄河 2022-04-02 阅读 77
java

详细说明(深入说明)

接口的设计目的,是对类的行为进行约束(更准确的说是⼀种“有”约束,因为接⼝不能规定类不可以有 什么行为),也就是提供⼀种机制,可以强制要求不同的类具有相同的⾏为。它只约束了行为的有无, 但不对如何实现行为进行限制

抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为,可以让这些类都派生出⼀个抽象类。一定是先有子类再有抽象类!将子类中共性的方法抽取出来形成抽象类。抽象类不能被实例化,这是因为抽象类有一些方法是没有被实现!

接口是对行为的抽象,表达的是 like a 的关系。比如: Bird like a Aircraft 。接口的核心是定义行为,即实现类可以做什么,至于实现类主体是谁、是如何实现的,接口并不关心。

抽象类是对类本质的抽象,表达的是 is a 的关系,比如: BMW is a Car 。抽象类包含并实现子类的通用特性,将子类存在差异化的特性进行抽象,交由子类去实现。

使用场景

当你关注⼀个事物的本质的时候,用抽象类;当你关注⼀个操作的时候,用接口

抽象类的功能要远超过接口,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类

在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对⼀个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度。

举报

相关推荐

0 条评论