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. libpcap介绍(一)
  2. 大数据时代 我们还有隐私吗?
  3. 北风设计模式课程---7、建造者模式
  4. wxIntegerValidator< T > 类模板用法
  5. 2018年第九届省赛C/C++A组第2题——星期一
  6. Python学习(变量与字符串)
  7. sizeof string
  8. IntelliJ IDEA2017 修改缓存文件的路径
  9. FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!
  10. 国内各大音乐平台歌曲分享
  11. 制作纯天然无污染的微软官方win10Pe(超详细)
  12. FusionChartsFree设置指南
  13. Debugger and device times had drifted by more than 60s. Please correct this by running adb shell da
  14. Web前端-html页面-01(锚点、表单、个人简历)
  15. 梳妆台行业调研报告 - 市场现状分析与发展前景预测
  16. 深潜Kotlin协程(二十一):Flow 生命周期函数
  17. EasyUI学习笔记7:MIS开发利器_ datagrid插件(中)
  18. Log4cplus编译
  19. 【青松资讯】数字身份版真假美猴王——利用复制进行的金融犯罪
  20. Davinci视频采集驱动文档

热门文章

  1. 如何把html传到另一个页面中,如何把一个页面的值传到另一个页面
  2. ANSYS_Designer仿真串扰
  3. APM和PIX飞控日志分析入门贴
  4. 如何评价网络的好坏及IP相关知识
  5. dell-inspiron-5439 uefi 黑苹果_黑苹果 win10和Mac 10.12双系统(转)
  6. RabbitMQ消费端消费机制
  7. 百家号免费引流绝招在这里!
  8. 如何将word图片上的文字提取出来
  9. PB协议(三)Protobuf的Python开发教程
  10. 小寒android工具箱,小寒走心文案_小寒文案范文模板