l  语法:

抽象类:

1.如果一个类中有个方法时被声明为抽象方法,那么本类需要用abstract关键字声明;

2.抽象类的成员属性跟普通类没什么区别;

3.抽象类不能被直接实例化;

4.抽象类中的抽象方法可以用public product修饰  不能用static final private修饰;

5.还是跟普通类一样只支持单继承

接口:

1.接口中的方法全部为  抽象方法  都是被public abstract修饰的

2.接口中的变量全部为public static final修饰的常量

3.接口可以多继承   是对java中单继承的一种折中解决办法;

l  设计理念:

1.抽象类跟接口以及多态概念以及设计理念完全是为了描述现实世界的而提出来的:

2.抽象类是对一类事物的抽象描述,而接口是对行为的抽象;抽象类主要描述的是类整体的一种描述,包括属性、行为、而接口是对类中行为的一种抽像描述;

接口:面对的整个世界的行为(不区分类属体系);

抽象类:对现实世界一类事物的向上抽取——面对一个(类属)体系

语义体现:Extends/ implements == 是不是(类属)/有没有(能力)

l  设计层面上不同:

1.抽象类作为很多子类的父类,体现的是一种“模板设计”的模式

好处:继承—java中带来的好处避免数据的冗余,);

例如: 根据PPT模板A 的基础上设计类PPTB、PPTC 那么A就可以看作模板 如果需要公共部分的改动,只需要修改A就行了

2.接口:是对行为的抽取,体现的是辐射式的设计模式;如果接口进行类变更,实现类都需要该写

好处:程序(行为)模块耦合度低设计灵活(例如:独立的萨德反导系统(定义成接口),这样路基实现该组接口,就可以路基发射;潜艇实现了该组接口,就可以海基发射;..等等,)

总结12:抽象类可以看作是对整个世界纵向抽取;  接口是横向抽取所有类的行为的抽取;

l  面向接口编程(是一种软件的设计架构):

在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义(该层的)一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。对系统的灵活性大有好处;

例如:javaEE项目设计架构时:

web层,service层,dao层

我们习惯在dao层中暴漏:(注册相关一组接口)、(登录相关的一组接口)、(商品类查询的一组接口)...等等其他功能的接口组。这样整个项目的主支杆都好了,(架构清晰明朗)无论从维护,还是复用性,代码工程性来说,都大大地提高了!

呵呵呵!希望大神们前来指正!!!。。

java接口与抽象类的优缺点_java抽象类与接口的比较相关推荐

  1. java继承和接口的优缺点_Java抽象类和接口的优缺点---总结-2

    51Testing软件测试网[P/WX?\ 解决方案二:~+j;Hw/U1{@4g0 A^9@5]p7j:Rys0既然open.close和alarm属于两个不同的概念,根据ISP原则应该把它们分别定 ...

  2. java抽象类的属性_java抽象类详解

    前言 在没讲抽象类之前  我们先来看看 final关键字 final 修饰符 可以修饰 类.属性.方法 修饰类时  表示该类不能被继承   其他特征 跟普通的类一样 修饰 属性时 表示 改属性不能改变 ...

  3. java接口的作用和意义_java什么是接口?接口有什么作用?接口如何使用?

    1.在Java中接口是一种特殊的抽象类.跟一般的抽象类相比,接口里面的所有方法都是抽象方法,接口口里面的所有属性都是常量.也就是说,接口里面只有方法定义而没有任何方法实现.上面所说的是接口的概念. 2 ...

  4. java抽象类的实现_JAVA抽象类和抽象方法(abstract)

    一.抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和 ...

  5. Java学习(9)(3种向上转型的方式、重写、向下转型、多态的优缺点、抽象类【基础规则、抽象类的作用】接口【基础规则、 接口的使用】)

    接上次博客:JAVA学习(8)继承 ( 继承的注意事项.Java的执行顺序.继承方式.限定词protcted.final关键词.多态.动态绑定和静态绑定 )_di-Dora的博客-CSDN博客 目录 ...

  6. java抽象机制_Java很好学:接口+抽象类+事件监听机制

    接口?抽象类? 首先知道知道下接口.抽象类的概念 接口:只含有常量和抽象方法(只有方法名和参数不含方法体的方法) 抽象类:可以定义常量和抽象方法(和接口一样),还可以定义变量和普通方法和构造方法(和一 ...

  7. java定义两个动物抽象类 程序_java抽象类和接口详解

    接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念 ...

  8. java定义接口区分飞机和汽车_JAVA菜鸟入门篇 - 抽象类、接口 (十九)

    一.抽象类 抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类. 为什么需要抽象类?如何定义抽象类? 是一种模板模式.抽象类为所有子类提供一个通用模板,子类可以再 ...

  9. java类接口的区别_java抽象类和接口区别

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

最新文章

  1. photoshop ps 钢笔工具抠出图 复制出来 方法
  2. java 华为面试题_JAVA华为面试题
  3. md发布test-1 md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-
  4. 1058 选择题 (20 分)
  5. 赠送300家门店260亿销售额的零售企业Power BI实战示例数据
  6. php如何看phpinfo(),如何从phpinfo中获取有效信息 | 学步园
  7. 一周学会Mootools 1.4中文教程:(4)类型
  8. api es7 删除所有数据_【Elasticsearch7.0】文档接口之查询delete接口
  9. 【转】Linux之printf命令
  10. Toontrack EZbass for mac - 虚拟低音音频插件
  11. redis04-----Hash 哈希数据类型相关命令
  12. JMeter之压力测试
  13. 【毫米波雷达】人体目标探测理论
  14. html 属于mvvm框架,vue.js是mvvm框架吗
  15. java实现微软文本转语音(TTS)经验总结
  16. 【有利可图网】PS实战系列:PS美化婚纱照片
  17. html语言怎么排列图片,css怎么让图片横着排列?
  18. 【汇正财经】股票价格有哪些偏向性特征?
  19. jvm优化_在JVM中记录世界停顿
  20. 创建Excel,创建pdf

热门文章

  1. 使用EA绘制UML状态机图
  2. srs提供的rtmp客户端srs-librtmp
  3. 高通手机系统属性配置:system.prop----build.prop是所有安卓手机都有的一些配置信息。
  4. C++编程(一) :C++基础入门
  5. android 查看系统允许内存,查看Android系统内存使用的方法
  6. 轻松玩转K60--飞思卡尔
  7. Win10 笔记本本地摄像头提供 Rtsp 视频流服务
  8. AWD-simple
  9. html怎么设计为中文字体,css中怎么设置字体?
  10. IJCAI-18阿里妈妈广告搜索转化预测 总结