当前位置: 首页 > news >正文

wordpress文章链接怎么改windows系统优化软件

wordpress文章链接怎么改,windows系统优化软件,网站域名查询工具,做外贸哪个网站要办信用卡的文章目录 1. 语法层面的区别1.1 成员属性1.2 成员方法1.3 关系 2. 设计理念层面的区别(重点)3. 举例理解抽象类和接口在设计理念层面的区别3.1 例一:门和警报3.2 例二:招聘3.3 例三:装修房子 4. 总结 1. 语法层面的区别…

文章目录

  • 1. 语法层面的区别
    • 1.1 成员属性
    • 1.2 成员方法
    • 1.3 关系
  • 2. 设计理念层面的区别(重点)
  • 3. 举例理解抽象类和接口在设计理念层面的区别
    • 3.1 例一:门和警报
    • 3.2 例二:招聘
    • 3.3 例三:装修房子
  • 4. 总结

1. 语法层面的区别

1.1 成员属性

  • 抽象类:抽象类中的成员属性可以是变量,也可以是常量
  • 接口:接口中的成员属性都是常量,默认由 public static final 关键字修饰

1.2 成员方法

  • 抽象类:抽象类中的成员方法可以是具体的方法,也可以是抽象方法
  • 接口:接口中的方法都是抽象方法,默认由 public abstract 关键字修饰(当然,JDK 8 及以后允许接口中有默认方法,这不在我们的讨论范围之内)

1.3 关系

  • 类与类:一个类只能继承一个类
  • 类与接口:一个类可以实现单个或多个接口(接口不能继承类)
  • 接口和接口:一个接口可以继承一个或多个接口

2. 设计理念层面的区别(重点)

  • 抽象类:对事物的抽象,包括属性和行为
  • 接口:对行为的抽象,主要是行为

接口的设计目的是对类的行为进行约束,要求不同的类具有相同的行为,只约束行为的有无,但不限制如何实现行为

抽象类的设计目的是代码复用,当不同的类具有某些相同的属性和行为,可以让这些类都派生于一个类,在这个类中抽象出属性和行为,避免多次重复编写定义属性和行为的代码,达到代码复用的效果

正是因为行为可能没有具体实现,抽象类和接口不允许实例化,避免出现一些不可预测的情况发生


抽象类的功能大于接口,但是定义抽象类的代价很高,因为在 Java 中只能继承一个类,所以需要在抽象类中编写出所有子类的共性

接口在功能上会弱化不少,因为接口是针对某一个行为的描述,一个事物可能会有多种行为,所以一个类可以同时实现多个接口

设计抽象类的难度远远大于设计接口

3. 举例理解抽象类和接口在设计理念层面的区别

我们通过几个例子来理解抽象类和接口在设计理念层面的区别

3.1 例一:门和警报

我们知道,门都有 open 和 close 两个动作,我们分别使用抽象类和接口来定义这个抽象概念

在这里插入图片描述

目前看来,使用抽象类和接口都没有问题

随着时代的发展,某些门具备了报警的功能,我们该如何实现报警(alarm)这个功能呢


思路一: 将 open、close、alarm 三个功能都放在同一个抽象类里面

在这里插入图片描述

这样一来,所有继承了抽象类的子类都会具备报警功能,但并不是所有的门都具备报警功能,所以这个思路不好


思路二:将 open、close、alarm 三个功能都放在同一个接口里面

在这里插入图片描述

需要实现报警功能的类,就重写接口中的 alarm 方法

但实现 Door 接口后同时也要重写 open 和 close 方法,但是有一些具有报警功能的类并不具备 open 和 close 这两个功能,例如火灾报警器

思路二违反了设计模式六大基本原则中的接口隔离原则(至于什么是接口隔离原则,可以参考我的另一篇博文:设计模式的六大基本原则(开闭原则、单一职责原则、里氏替换原则、接口隔离原则、依赖倒置原则、迪米特法则))


由此可见,两种思路的设计都有问题,那我们应该如何设计呢

open 和 close 是门应该具备的动作,而 alarm 是额外附加的行为,所以最好的设计思路就是将报警功能单独设计为一个接口,将 open 和 close 放到抽象类 Door 中

在这里插入图片描述

3.2 例二:招聘

假如你是一个团队的领导,那么你在招聘的时候会对应聘者会有一定的任职要求,只有满足了这些要求才能参加面试,比如:

  • 本科学历
  • 计算机相关专业
  • 熟悉 Java

这个过程就相当于我们写了一个面试的方法,同时定义了一个接口,然后将接口作为方法的参数,从而保证所有传进来的参数,也就是来面试的应聘者都需要满足任职要求

在这里插入图片描述

3.3 例三:装修房子

毛坯房:指房屋建筑主体结构完工后,没有进行室内装修的房子。毛坯房通常具备基本的水电设施,但内部没有进行墙面抹平、地面铺设、门窗安装等装修工程,不具备直接入住的条件

假如你买了一个毛坯房,打算将房子装修成自己喜欢的风格,在装修过程中你会发现,开发商给你预留好了灯座,但具体要安装什么类型的灯,需要你自己决定,这个毛坯房就相当于一个抽象类

4. 总结

接口相当于定义规范,在 Java 代码中,如果我们对方法的参数、方法的返回值有硬性的要求,我们就可以将这些要求定义到某一个接口中(相当于定义了规范)

抽象类可以理解为一个半成品,我们拿到抽象类以后,需要在抽象类的基础上缝缝补补,才能得到一个完整的成品

http://www.hengruixuexiao.com/news/41704.html

相关文章:

  • 涟源市住房与城乡建设局网站百度竞价开户联系方式
  • 怎么免费把自己在dreamweaver做的网站放到网上去宁波优化网站厂家
  • php除了做网站如何在百度上建立网站
  • 贵阳 网站建设软文推广网站
  • 网站后台管理怎么做网站的排名优化怎么做
  • wap建站php源码哪家公司做seo
  • 最权威的品牌排行榜网站腾讯企点官网
  • 用手机建网站网站seo百度百科
  • 手游网站做cpc还是cpm广告号seo咨询解决方案
  • mvc 门户网站开发框架重庆网站制作公司哪家好
  • 响应式网站滑动网络营销是什么专业类别
  • 开发公司工程部经理岗位职责seo优化技巧
  • 在线教学视频网站建设省好多会员app
  • 博彩网站开发教程seo网站快速排名软件
  • 深圳网站建设优化互联网营销怎么赚钱
  • p2p网站建设框架百度怎么优化网站关键词
  • 淄博手机网站开发公司seo经理招聘
  • 海北网站建设网络营销与直播电商学什么
  • wordpress建站教程网谷歌 翻墙入口
  • 怎么做非法彩票网站抖音广告投放代理商
  • 郑州东区网站建设免费制作永久个人网站
  • 好的app制作公司湖南 seo
  • 十堰网站设计公司黑帽seo技术论坛
  • 个人如何网站备案强化防疫指导
  • 网站配置优化网站优化检测
  • 图片编辑器在线网页版seo站长网怎么下载
  • 网站独立ip优化整站优化和关键词优化的区别
  • 装修公司做网站的好处顾问
  • 网站策划书3000如何进行网站宣传推广
  • 建立网站费用多少seo资源