自学期间查看资料所写,也是看了很多做的总结,能力有限,会出现错误,希望大家指正,谢谢。

1、抽象类是什么

抽象类和具体类是相对的概念。“抽象”是一种存在思想逻辑中的概念,而“具体”是一种可见可触摸的现实对象。
简单说,比如“人”比“男人”抽象一点,“动物”又比“人”更抽象一点,而“生物”又比“动物”更抽象。

抽象类的设计目的是代码复用,在抽象类中是先有子类再有父类,将子类的共性抽取成父类。

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

2、接口是什么

接口的设计是对行为的约束,可以强制要求不同的类具有相同的行为,他只约束了行为的有无,并不对行为是如何实现的进行约束。

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

3、使用场景

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

4、接口和抽象的相同点

1、抽象类和接口都不能实例化,但可以定义抽象类和接口类的引用。
2、一个类如果继承了某个抽象类,或实现了某个接口,都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。

5、接口和抽象类的不同点

1、接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法。接口中不能定义构造器,而且其中的方法全部是抽象方法。
2、抽象类中的成员可以是private、default、protected和public的。接口中的成员全是public的。
3、抽象类可以定义成员变量,接口中定义的成员变量都是常量。
4、有抽象方法必须被声明为抽象类,抽象类不一定有抽象方法。
5、单继承,extends。多实现,implements。
6、接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;
7、抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
8、抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。

6、应用

1、抽象类的功能相比较多于接口,但定义抽象类的代价高。
2、高级语言中,只能实现单继承。在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述,但可以在一个类中同时实现多个接口。
3、抽象类的设计目的是代码复用,接口的设计是对行为的约束。

抽象类和接口之间的关系相关推荐

  1. 接口、抽象类、类之间的关系

    接口.抽象类.类之间的关系 接口和接口:继承 接口和抽象类:抽象类实现接口 类和抽象类:类继承抽象类 类和类:继承

  2. 关于类、抽象类和接口的继承关系

    关于类.抽象类和接口的继承关系 Java类的继承是单继承的,就是一个类只能继承一个类,但是可以通过接口来实现多继承,一个类可以实现多个接口.通过这种方式,Java类就可以实现多继承的关系.但是在继承类 ...

  3. JAVA面向对象-----接口与类、接口之间的关系

    接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...

  4. Java中抽象类和接口之间的区别

    一些受欢迎的访谈问题是"抽象类和接口之间有什么区别","什么时候使用抽象类以及什么时候使用接口". 因此,在本文中,我们将讨论这个主题. 在探讨它们之间的差异之 ...

  5. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

  6. Java中类、抽象类、接口之间的区别和联系。

    Java中类.抽象类.接口之间的区别和联系. 程序设计所面对的问题域--客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议).把客观世界中的事物映射到面 ...

  7. 普通类,抽象类和接口之间的区别

    一.普通类.抽象类和接口区别: 1. 普通类可以实例化,接口都不能被实例化(它没有构造方法),抽象类如果要实例化,抽象类必须指向实现所有抽象方法的子类对象(抽象类可以直接实例化,直接重写自己的抽象方法 ...

  8. 类、抽象类、接口之间的区别

    目录 1.类与抽象类的异同之处 (1)类和抽象类的区别 (2)类和抽象类的相同之处 2.接口与类的异同之处 (1)接口与类相似点 (2)接口与类的区别 (3)接口特性 3.抽象类和接口的区别 1.类与 ...

  9. PHP中普通类、抽象类、接口之间的关联

    三者关系 注意区分重写与重载 重载:同一个类中,出现同名方法,但参数不同 重写:有父子关系的2个类中,出现同名且参数相同的方法,这种叫做子类重新父类 PHP中不存在重载 因为一个类中不能出现同名方法! ...

最新文章

  1. 惊呆了!Spring Boot 还能远程调试?
  2. php for 写入多行数据库,php – MYSQL意外插入多行
  3. web 应用在线编辑器 glitch 简介
  4. 保证一个用户已选取的记录不被其他用户选取
  5. 正则表达式验证密码强度
  6. 线段树和zkw线段树
  7. SAP License:SAP中的一些扩展表
  8. opencv 中从cv::line和resize()函数
  9. linux php pdo dblib,PDO_DBLIB (MSSQL) on Ubuntu Server
  10. Vue:embed结合ElementUI中dialog实现PDF文件预览
  11. PMP考试教材是什么?有几本?
  12. mybatis和mybatis-plus存读数据库中的对象(对象转json与json转对象)
  13. 华为16道经典面试题
  14. 【路径规划】基于A星算法实现栅格地图全路径规划matlab源码
  15. 歌谷服务套件gms_谷歌gms框架安装器下载-安卓9谷歌服务框架app安装-游戏大玩家...
  16. VMware ESXi安装mac os
  17. 区块链技术正大肆颠覆价值数十亿美元的金融科技产业
  18. 时间序列复杂性的度量—近似熵和样本熵
  19. 明日之后 服务器维护,明日之后服务器爆满炸服 排队等待进不去什么梗
  20. 王煜全老师谈SNS创业

热门文章

  1. Web前端开发技术:Web前端开发技术
  2. c语言多进程之进程间通信IPC:信号操作函数之signal,kill
  3. 李嘉诚布局接班人富儿穷养 财富版图正远离中华区
  4. java实现拆分元素,java-将列表沿元素拆分为子列表
  5. 斯德哥尔摩的照片七:城市漫步(下)
  6. Swing中如何实现二级联动下拉列表
  7. R循环有两个_量化金融R语言【入门五味】五味:函数
  8. Ajax 传递数组、表单+
  9. Springboot物资发放管理系统
  10. 【机器学习】缺失值的处理方法总结