语法层面上来说:
- 抽象类可以提供成员方法的实现细节(多个方法) , 抽象类在1.8(不包含1.8)之前不能提供实现细节 , 1.8之后可以通过默认方法来提供一个默认的实现方法 。
- 抽象类的成员变量可以是各种类型的 , 而接口中的成员变量只能是publicstatci final修饰的
- 抽象类中可以包含静态方法和静态代码块 , 而接口不行
- 抽象类只能继承一个父类 , 而一个类可以实现多个接口
- 抽象类出现就是为了被继承 , 它的设计属于模板式的设计 。 接口设计出来是为了组合使用 , 是一种行为规范 , 属于辐射式设计 。
- 抽象类是对事物的抽象 , 接口是对行为的抽象 。 举个简单的例子 , 鸟是动物 , 这个动物就是抽象类;而鸟会飞 , 这个能不能飞的能力就是一个接口 。
辐射式设计:例如手机上5g模块 , 有的手机装了有的手机没装 , 如果我们要升级5g模块的代码的话 , 那么所有装了5g模块的手机都要改动代码)
一般来说 , 我们这样判断这个类该使用抽象类还是接口 。
- is-a:满足is-a关系我们使用继承 , 例如:玻璃杯、塑料杯都是杯子
- like-a:满足like-a关系我们使用接口 , 例如:空调继承于制冷机 , 但它同时有加热功能 , 那么你应该把让空调继承制冷机类 , 并实现加热接口 。
【5G|接口和抽象类有什么区别?】
相关经验推荐
- 小米科技|小米和红米有什么区别?哪个性价比最高?看完你就明白了
- 安卓|入门和中阶手机、平板也能更新! 三星公布 Android 12 升级时程
- iqoo|目前很受欢迎的二款千元中端机,配置和性能十分主流,性价比爆棚
- mybatis|CPU和系统全是美国公司的,所以美国决定了全球智能手机公司的存亡
- 阿里巴巴|微信和支付宝二选一,你留哪个?为何马云常说要把阿里做到102岁
- 联想|i7-12700H和R7-6800H,这两个CPU差距有多大?
- 芯片|华为P60 Pro曝光:打破传统束缚,集颜值和性能于一体
- 中国手机|印度,中国手机厂商们的远虑和近忧
- iPhone|红米K50S系列和红米K60疑似曝光,红米K50:刚成为小爆款
- 一加科技|移动硬盘怎么选?机械和固态哪些值得买?买前观看不踩坑