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

怎么做带购物功能的网站海淘网站主要关键词

怎么做带购物功能的网站,海淘网站主要关键词,哈尔滨网站开发电话,wordpress版面混乱文章目录 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.yayakq.cn/news/501238/

相关文章:

  • 我国企业网站的建设情况怎么seo关键词优化排名
  • 什么网站可以做平面设计赚钱wordpress替换谷歌字体库
  • 吴忠建设网站建设网站比较好的公司吗
  • 室内设计网站模板制作相册影集软件
  • 网站如何从行为数据进行优化宁波住房城乡建设局网站
  • 外贸设计网站建设企业邮箱注册申请步骤
  • 厦门专业做网站的风铃上做的网站发布时号码填写
  • 网站不备案能用吗上海比较好的网站建设公司
  • 如何做旅游网站推销app开发工具简单
  • 商务网站建设期末考试制作企业官网
  • 厦门手机建站wordpress aspnet_client
  • 网站排名所以关键词下降吉林网站模板
  • 如何免费开自己的网站网站在线帮助如何设计
  • 网站优化 代码优化中国建设银行官网站下载中心
  • 做网站付款会有凭证吗注册会计师报名时间
  • 网站建设的市场策划苏州做管网gis的网站
  • 湖北专业网站建设检修交换友链是什么意思
  • 医院品牌网站建设武进网站建设机构
  • 额尔古纳网站建设无锡八匹马网站建设
  • 品牌网站建设绿d茶设计排版软件
  • 百度网站建设中的自由容器企业怎么建设自己的网站首页
  • 功能性的网站归档系统第三方物流网站建设
  • 郑州php网站开发培训安卓手机做网站服务器吗
  • 标准网站建设价格国外响应式网站
  • 网站建设的目的是什么怎么创建个人网页
  • 商城网站建设行业现状网站制作 推荐新鸿儒
  • 平台兼职网站开发深圳做网站建设开发
  • php网站搬家软件建设好网站怎么付费推广
  • 网站接口设置家具网站模版
  • 上海专业网站建设 公司网站焦点图怎么做链接