童装网站建设目标网站建设公司做销售前景好不好

news/2025/9/29 20:29:08/文章来源:
童装网站建设目标,网站建设公司做销售前景好不好,ui包括哪几个方面,html网页设计期末考试文章目录 前言一、抽象类和接口对比二、举例说明三种情况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/news/922233.shtml

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

相关文章

wordpress下载网站西安哪里可以做公司网站

实时监控: 可视化大屏可以实时监控通讯网络的运行状态和性能指标。通过可视化展示网络的拓扑结构、设备状态、带宽利用率、延迟等数据,运维人员可以及时发现和解决网络故障,保障通讯网络的稳定性和可靠性。 故障诊断与分析: 可视…

山西企业网站建设手机app制作网站

真格这周是学习使用了不少,功能算是很不错,但在做的时候也发现了一个问题: 数据缺失:我在做回测,要求获取每天的delta值,并从中筛选条件值时,报错,显示无数据。不得不使用pass,影响我的回测连贯性。 现在开始讲下,我做的几个功能函数: 算起来,挺烦的,就是各种细节…

本地网站服务器搭建360网站建设基本情况

1 Ansible 介绍 Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于python 开发的(集合了众多运维工具 puppet、cfengine、chef、func、fabric的优点)自动化运维工具, 其功能实现基于ss…

雄安免费网站建设公司智能建站代理

目录 问题描述 解决方案 方案1: 方案2: 结果示意图 问题描述 做UI的时候,我们很多时候需要给绘制一个圆角边框,初识Qt绘制的童鞋,可能绘制出来的圆角边框很是锯齿,而且粗细不均匀,如下图&…

郑州网站建设兄长好晋城客运东站网站开发

获取源码或者论文请私信博主 演示视频: 基于微信小程序的中医体质辨识文体活动的设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java s…

郑州网站排名公司微信营销的方式有哪些

摘录自:PendingIntent详解 如何判断两个PendingIntent对等: 两个PendingIntent对等是指它们的operation一样, 且其它们的Intent的action, data, categories, components和flags都一样。但是它们的Intent的Extra可以不一样。 主要常量 FLAG_CANCEL_CUR…

Monsters And Spells

题目大意 给定一个长度为 \(n\) 的序列 \(a\),你需要构造一个序列 \(b\) 满足:\(b_0 = 0\) 对于任意一个 \(1 < i < n\),\(b_i \ge a_i\) 对于任意一个 \(1 < i < n\),\(b_i\) 为 \(0\),\(1\) 或 \(b…

Bilibili音频播放器开发 2025-9-29

🎯 前言我的网易云音乐快过期了(10-2)。📅 大致效果主窗口:下载窗口:歌单窗口:📝 总结与反思整体的实现上依靠的是GPT。 可以考虑一下嵌入式之类的方便嵌入手机进行使用。 发朋友圈没人赞......很尴尬了。其…

防爬虫逆向日志爆炸,精简追踪不崩浏览器控制台 - 详解

防爬虫逆向日志爆炸,精简追踪不崩浏览器控制台 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

网站备案 有效期中小企业网络规划与设计方案

题目描述(力扣题库 84): 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 解题思想: 单调栈: 利用先进后出的思想, 先算出长度更高的柱子所能勾勒…

使用 Jenkins 的流水线方案实施 CI/CD

使用 Jenkins 的流水线方案实施 CI/CDpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

抚松做网站wordpress小程序二开

这几天公司在排查内部数据账号泄漏&#xff0c;原因是发现某些实习生小可爱居然连带着账号、密码将源码私传到GitHub上&#xff0c;导致核心数据外漏&#xff0c;孩子还是没挨过社会毒打&#xff0c;这种事的后果可大可小。说起这个我是比较有感触的&#xff0c;之前我TM被删库…

湘潭网站建设出色磐石网络网站搭建详细教程

泛型&#xff0c;英文是generic。 泛型是一种参数化多态。就是把类型作为参数&#xff0c;使用时才指定具体类型。 这样一套代码可以应用于多种类型。比如Vec<T>&#xff0c;可以是整型向量Vec<i32>&#xff0c;也可以是浮点型向量Vec<f64>。 Rust中的泛型属…

重庆微信网站代理商把数据库wordpress

springboot注解扫描范围是由ComponentScan指定的;默认情况下为启动程序所在目录及其子包; 如果需要指定扫描路径&#xff0c;在启动程序中添加修改 ComponentScan(basePackages{"org.jstudio.a","org.jstudio.b"}) SpringBootApplication public class xxx…

平顶山市城乡建设职工培训网站花生壳官网免费域名申请

目录 一、Linux的哲学思想 1.1 基础知识 1.2 根目录下的文件夹 二、Shell 1、Shell的定义 2、Shell的作用 三、Linux命令行 1、Linux通用命令行使用格式 四、Linux命令的分类 1、内部命令和外部命令的理解 2、内部命令和外部命令的区别 3、命令的执行过程 五、编辑…

网站建设公司上海大连高端网页公司

文章目录 管道相关命令 目标 准备工作 1 cut 1.1 目标 1.2 路径 1.3 实现 2 sort 2.1 目标 2.2 路径 2.3 实现 第一步: 对字符串排序 第二步&#xff1a;去重排序 第三步: 对数值排序 默认按照字符串排序 升序 -n 倒序 -r 第四步: 对成绩排序【按照列排序】 …

婚纱定制网站哪个好如何开始做网站

redis源码剖析&#xff08;十五&#xff09;——客户端执行逻辑结构整理 加载略慢

解析网站怎么做成都网站建设招标

解决办法&#xff1a;安装laptop-mode-tools工具包。1.检查是否安装了grep laptop-mode-tools 工具包$ dpkg -l | grep laptop-mode-tools如果执行命令无结果输出&#xff0c;表示未安装(如果已安装&#xff0c;忽略第2步)2.安装laptop-mode执行命令&#xff1a;$ sudo apt-get…

怎样做网站后台iis做网站文件下载

一、源码特点 java Web火车查询管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…