童装网站建设目标宁波网站推广方案

pingmian/2025/10/9 22:12:45/文章来源:
童装网站建设目标,宁波网站推广方案,网站建设优化公司呼和浩特,正能量网站入口文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口… 文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口大家比较熟悉,它其实是一种规范,规定了方法的入参,反参等,一种抽象, 关键字是 interface;抽象类是用 abstract 修饰的类,可以包含抽象方法,也可以不包含抽象方法,可以有普通方法一般来说接口中的方法都是抽象的,无方法体的,但是java8之后,增加了default (大家课后了解下),它让接口也可以有方法体了,那么其实这里的default 就增强了接口的功能,不逊于抽象类了;接口是用来实现的,而且实现一个接口的时候,子类必须实现接口中的所有方法抽象类是用来被继承的,抽象类中的抽象方法可以在子类中选择性实现,这就是抽象类的灵活性那么当我用抽象类实现接口,我可以选择某些方法我在抽象类中实现,某些方法我不实现,而是继续在抽象类的子类中实现,那么这个方法我虽然实现了,但是还是一个抽象方法(你以为我实现了,然后并没有) 没有代码,仅讲解的的博主相当于耍流氓,接下来进入代码环节 二、举例说明三种情况 1.接口实现类 使用场景: 我又两种支付方式,微信/支付宝, 为了统一对外逻辑,我弄成一个接口对外暴露,方便统一调用 接口 public interface PayService {/*** 获取支付具体实现** return*/String getType();/*** 具体支付方法** param order* param money* return*/String toPay(String order, Integer money); }### 实现类 java Service public class AliPayServiceImpl implements PayService {/*** 获取支付具体实现** return*/Overridepublic String getType() {return Ali;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(阿里支付用支付宝,优惠一元);return Ali支付 订单号: order 金额: (money - 1);} }// Service public class WxPayServiceImpl implements PayService {/*** 获取支付具体实现** return*/Overridepublic String getType() {return Wx;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(微信支付,原价支付);return Wx支付 订单号: order 金额: money;} }2.抽象类实现类 使用场景: 依然是第一个支付场景,我这里简单改造下;抽象类还能有普通方法,这里我增加一个支付打印 抽象类 public abstract class PayService {/*** 获取支付具体实现** return*/abstract String getType();/*** 具体支付方法** param order* param money* return*/abstract String toPay(String order, Integer money);/*** 支付成功打印*/public void sout(){System.out.println(我支付成功了);} }实现类(子类) Service public class AliPayServiceImpl extends PayService {/*** 获取支付具体实现** return*/Overridepublic String getType() {return Ali;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(阿里支付用支付宝,优惠一元);return Ali支付 订单号: order 金额: (money - 1);} }// Service public class WxPayServiceImpl extends PayService {/*** 获取支付具体实现** return*/Overridepublic String getType() {return Wx;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(微信支付,原价支付);return Wx支付 订单号: order 金额: money;} } 这里看完是不是觉得抽象比接口强大,那为什么还要接口呢? 接口可以解决多重继承问题提供更灵活的扩展和维护Java中的抽象类和接口各有其应用场景,抽象类和接口都可以定义规范但实现规范的方式不同。抽象类是具体实现的规范而接口是行为的规范。抽象类可以解决单继承局限避免多继承带来的复杂性和低效性 3.抽象类实现接口 使用场景: 仍然是支付场景,接口中定义了四个方法 (abcd),有三个实现类 A B C ; 其中A 需要实现 ab d, B需要实现 bc d, C需要实现ca d 也就是A B C 三个实现类不需要实现接口中的所有方法,但是都需要实现d方法,而且是一个逻辑 这里d方法在每个子类中都实现一遍没必要,重复代码,咋办呢? 我们在接口和实现类之间加一个 抽象类 接口 public interface PayService {/*** 获取支付具体实现** return*/String getType();/*** 具体支付方法** param order* param money* return*/String toPay(String order, Integer money);/*** 扣减库存* param num 购买数量* return*/int decreaseStash(int num);/*** 打印成支付*/void sout();}抽象类 public abstract class PayAbstract implements PayService{/*** 获取支付具体实现** return*/Overridepublic String getType() {return null;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {return null;}/*** 扣减库存** param num 购买数量* return*/Overridepublic int decreaseStash(int num) {return 0;}/*** 打印成支付*/Overridepublic void sout() {System.out.println(支付成功);} }三个实现类 Service public class AliPayServiceImpl extends PayAbstract {/*** 获取支付具体实现** return*/Overridepublic String getType() {return Ali;}/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(阿里支付用支付宝,优惠一元);return Ali支付 订单号: order 金额: (money - 1);} }// Service public class WxPayServiceImpl extends PayAbstract {/*** 具体支付方法** param order* param money* return*/Overridepublic String toPay(String order, Integer money) {System.out.println(微信支付,原价支付);return Wx支付 订单号: order 金额: money;}/*** 扣减库存** param num 购买数量* return*/Overridepublic int decreaseStash(int num) {return num;} }// Service public class JUHEPayServiceImpl extends PayAbstract {/*** 获取支付具体实现** return*/Overridepublic String getType() {return JUHE;}/*** 扣减库存** param num 购买数量* return*/Overridepublic int decreaseStash(int num) {return num;} }这样在接口和抽象类之间又做了一层抽象,抽象层提取了公共的方法d (sout),而且让每个实现类都更加灵活的实现方法 总结 抽象类实现接口的意义在于提供了一种灵活且层次分明的代码结构有助于实现模块化和可维护性。 具体来说抽象类可以作为继承层次结构中的基础类提供一些公共方法和属性子类可以继承和扩展。而接口则定义了一组相关的方法规范约束了实现这些方法的类或抽象类的行为。这有助于确保代码的模块化提高代码的可重用性和可维护性。 抽象类相当于在原有抽象的基础上,再次抽象,提取了一些公共方法;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

马鞍山建设网站马和人做人和牛做网站

告警解释 系统每天二十三点检查一次当前系统中的证书文件,如果当前时间距离过期时间不足告警阈值天数,则证书文件即将过期,产生该告警。告警阈值天数的配置请参考《管理员指南》的“配置证书即将过期告警阈值”章节。 当重新导入一个正常证…

广州开发小程序企业seo网络营销

Java内存模型: 内存分布情况及其关系: 主内存:Java内存模型规定所有的变量都保存在主内存中 工作内存:每个线程都有自己的工作内存,保存了该线程使用到的变量的主内存副本拷贝 主内存与工作内存的关系: 线程对变量的所有操作都必须在自己的工作内存中进行,不能直接读写主内存…

免费行情软件app网站大全下载u288北京住建局

智能优化算法应用:基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.北方苍鹰算法4.实验参数设定5.算法结果6.参考…

移动网站建设生要女延吉哪家网站建设公司好

解决办法:上次我的复制 ctrl c不能用就是打开的QQ系统设置,只保留qq的截图快捷键,其他的都是无。 哎,一会又热键冲突了,卸载了搜狗输入法就没事了,原来搜狗的问题。转载于:https://www.cnblogs.com/xiaofa…

广州网站推广方案视频分享网站建设难吗

前面2期内容,主要给大家重点介绍了Runway视频生成技术的核心产品功能板块Gen1、Gen2、FI使用教程,还没有看过的小伙伴可以回看往期文章。除了视频生成AI技术外,Runway还具有图片、视频后期处理30多项单个功能,例如视频修复、视频主…

兰州专业网站建设公司泰安的网站建设公司

ES6版本 function countdown(endTime, includeSeconds true) {// 获取当前时间let now new Date();// 将传入的结束时间字符串转换为日期对象let endDateTime new Date(endTime);// 检查传入的时间字符串是否只包含日期(不包含时分秒)if (endTime.tr…

北仑网站建设29gz上海建设网站方法

文档讲解:打家劫舍 打家劫舍II 打家劫舍III 198.打家劫舍 题目链接:https://leetcode.cn/problems/house-robber/description/ 思路: 设dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金…

免费网页代理ip地址网站观澜做网站公司

sentinel中监听器的运用–规则管理 规则结构 类图关系 类关系图如下 Rule 将规则抽象成一个类, 规则与资源是紧密关联的, 也就是说规则作用于资源。因此, 我们需要将规则表示为一个类, 并包含一个获取资源的方法 这里采用接口的原因就是规则是一个抽象概念而非具体实现。…

废旧网站那个做的最好网站模板出售

咨询区 Guilherme Ferreira:我通过 post 方式向我的一个webapi中提交数据,然后插入到数据库中,在 ui端,当用户点击某一个 button 之后,代码会将 button 禁用,但因为某些原因,点击按钮的速度比禁…

购物网站的首页是静态详细描述建设一个网站的具体步骤

文章目录 [toc]试题编号试题名称时间限制内存限制问题描述输入格式输出格式样例输入样例输出样例说明评测用例规模与约定Python实现 试题编号 202309-1 试题名称 坐标变换(其一) 时间限制 1.0s 内存限制 512.0MB 问题描述 对于平面直角坐标系上的坐标 (…

无锡专业做网站望野王绩翻译

Express 框架 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定…

网站搭建哪家好网站建设费用的会计分录

姑姑和堂弟从老家呼伦贝尔来北京,我拍下了这张照片。

龙华网站开发公司电话情人节给女朋友做网站

文章目录1. 进入配置文件2. 环境变量添加格式3.使配置文件立即生效4. 实例1. 进入配置文件 sudo vim /etc/profile2. 环境变量添加格式 export 变量名路径 export PATH${PATH}:${变量名}/子路径3.使配置文件立即生效 source /etc/profile4. 实例 export MAVEN_HOME/usr/lo…

网站开发制作报价单网站 多少篇文章才能上线

1、认识一下小小蛮驴真面目 1.1、组件部分 HaaS100核心板 HaaS100是一款物联网场景中的标准硬件,并配套嵌入到硬件中的软件驱动及功能模块,为用户提供物联网设备高效开发服务。 HaaS100核心板有着丰富的外设接口,如下所示: 智…

做网站别名解析的目的是什么网站建设简讯

cc_gbif()是R语言包coordinatecleaner中的一个函数,用于清理GBIF(全球生物多样性信息设施)数据集的地理坐标。该函数可以识别潜在的坐标错误,并对其进行修正或删除。 以下是cc_gbifl()函数的一般用法和主要参数: cc_…

网站建设 企业机房托管

2019独角兽企业重金招聘Python工程师标准>>> 防止黑客入的方法有很多,但是世界上没有绝对安全的系统。我们只可以尽量避免被入侵,最大的程度上减少伤亡。那么,接下来天下数据将为您详细介绍防止黑客入侵的五大技巧。(本文为天下数…

著名设计案例网站网站一般用什么语言

vue2面试题:vue组件之间的通信方式有哪些? 回答思路:1.组件通信的目的-->2.组件通信的分类-->3.组件通信的方案1.组件通信的目的2.组件通信的分类3.组件通信的方案(1)通过props传递数据(2&#xff09…

网站建设到底怎么回事河南便宜网站建设费用

这个onvif工具可以实时监控画面,使用起来简单方便 左侧一栏是设备信息,中间上半部分是设备配置设置,下半部分是图像预览配置设置。 修改密码可通过该工具,点击User management后选择用户类型并且修改密码。

绍兴柯桥建设局网站广告设计软件手机版

MySQL提供了许多数字函数,用于对数字进行各种计算和处理。以下是一些常用的MySQL数字函数。 内容有点多,建议收藏以备后续用到查阅参考。 目录 一、SIGN 取数字的符号 二、ABS 取绝对值 三、COS 取余弦值 四、ACOS 取反余弦值 五、SIN 取正弦值 六…

枣庄做网站建设的公司附近培训电脑的地方

目录 一、下载程序 1. 点击Download 2. 点击Files for Microsoft Windows 3. 点击Apache Lounge 4. 点击httpd-2.4.54-win64-VSI6.zip ​5. 下载压缩包 6.解压到文件夹里 二、配置环境变量 1. 右键我的电脑 - 属性 2. 高级系统设置 3. 点击环境变量 4. 点击系统变…