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

网站建设内容录入论文网络营销试卷及答案

网站建设内容录入论文,网络营销试卷及答案,电子商务类网站,网页游戏大全力荐新壹玩文章目录 前言一、抽象类和接口对比二、举例说明三种情况1.接口实现类接口 2.抽象类实现类抽象类实现类(子类) 3.抽象类实现接口接口抽象类三个实现类 总结 前言 抽象类和接口其实都是抽象的一种,那么他俩有何异同呢? 抽象类实现接口的意义何在? 一、抽象类和接口对比 接口…

文章目录

  • 前言
  • 一、抽象类和接口对比
  • 二、举例说明三种情况
    • 1.接口实现类
      • 接口
    • 2.抽象类实现类
      • 抽象类
      • 实现类(子类)
    • 3.抽象类实现接口
      • 接口
      • 抽象类
      • 三个实现类
  • 总结


前言

抽象类和接口其实都是抽象的一种,那么他俩有何异同呢?
抽象类实现接口的意义何在?


一、抽象类和接口对比

  1. 接口大家比较熟悉,它其实是一种规范,规定了方法的入参,反参等,一种抽象, 关键字是 interface;
  2. 抽象类是用 abstract 修饰的类,可以包含抽象方法,也可以不包含抽象方法,可以有普通方法
  3. 一般来说接口中的方法都是抽象的,无方法体的,但是java8之后,增加了default (大家课后了解下),它让接口也可以有方法体了,那么其实这里的default 就增强了接口的功能,不逊于抽象类了;
  4. 接口是用来实现的,而且实现一个接口的时候,子类必须实现接口中的所有方法
  5. 抽象类是用来被继承的,抽象类中的抽象方法可以在子类中选择性实现,这就是抽象类的灵活性
  6. 那么当我用抽象类实现接口,我可以选择某些方法我在抽象类中实现,某些方法我不实现,而是继续在抽象类的子类中实现,那么这个方法我虽然实现了,但是还是一个抽象方法(你以为我实现了,然后并没有)

没有代码,仅讲解的的博主相当于耍流氓,接下来进入代码环节

二、举例说明三种情况

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://dinncomynheer.stkw.cn
http://dinncoistle.stkw.cn
http://dinncopretermission.stkw.cn
http://dinncocaecotomy.stkw.cn
http://dinnconeighborite.stkw.cn
http://dinncosludgeworm.stkw.cn
http://dinncolandon.stkw.cn
http://dinnconumb.stkw.cn
http://dinncocarryout.stkw.cn
http://dinncorhine.stkw.cn
http://dinncoijssel.stkw.cn
http://dinncotransconjugant.stkw.cn
http://dinncotoe.stkw.cn
http://dinncomanyat.stkw.cn
http://dinncopenpoint.stkw.cn
http://dinncounisonant.stkw.cn
http://dinncoentrammel.stkw.cn
http://dinncodynamometer.stkw.cn
http://dinncohylomorphism.stkw.cn
http://dinncoexemplariness.stkw.cn
http://dinncoamobarbital.stkw.cn
http://dinncoslaister.stkw.cn
http://dinncodehydrofreezing.stkw.cn
http://dinncosternutative.stkw.cn
http://dinncoorthocephaly.stkw.cn
http://dinncobarrelled.stkw.cn
http://dinncoloopworm.stkw.cn
http://dinncogummous.stkw.cn
http://dinncolaunch.stkw.cn
http://dinncoweaponry.stkw.cn
http://dinncofaithful.stkw.cn
http://dinncologbook.stkw.cn
http://dinncoamino.stkw.cn
http://dinncoghz.stkw.cn
http://dinncomalwa.stkw.cn
http://dinncowheeler.stkw.cn
http://dinncorapier.stkw.cn
http://dinncorugger.stkw.cn
http://dinncolimay.stkw.cn
http://dinncolur.stkw.cn
http://dinncocroze.stkw.cn
http://dinncorum.stkw.cn
http://dinncomillepede.stkw.cn
http://dinncoangelophany.stkw.cn
http://dinncostepsister.stkw.cn
http://dinncobracteole.stkw.cn
http://dinncobotb.stkw.cn
http://dinncoyawning.stkw.cn
http://dinncolatitudinarian.stkw.cn
http://dinncotortola.stkw.cn
http://dinncocolorific.stkw.cn
http://dinncoratafee.stkw.cn
http://dinncoknown.stkw.cn
http://dinncoorvieto.stkw.cn
http://dinncohypostatization.stkw.cn
http://dinncorenumerate.stkw.cn
http://dinncoconvertiplane.stkw.cn
http://dinncoinapplicable.stkw.cn
http://dinncovsf.stkw.cn
http://dinncohartebeest.stkw.cn
http://dinncodeathful.stkw.cn
http://dinncoibid.stkw.cn
http://dinncothallious.stkw.cn
http://dinncounteach.stkw.cn
http://dinncoinpouring.stkw.cn
http://dinncotribasic.stkw.cn
http://dinncoawol.stkw.cn
http://dinncoconfiscation.stkw.cn
http://dinncomesodont.stkw.cn
http://dinncopreposterously.stkw.cn
http://dinncovittle.stkw.cn
http://dinncopinealoma.stkw.cn
http://dinncoechinite.stkw.cn
http://dinncolobito.stkw.cn
http://dinncodebrett.stkw.cn
http://dinncofinance.stkw.cn
http://dinncojackfish.stkw.cn
http://dinncoresurrectionary.stkw.cn
http://dinncocelery.stkw.cn
http://dinncoreleasor.stkw.cn
http://dinncobarrette.stkw.cn
http://dinncoosteopathy.stkw.cn
http://dinncoataxic.stkw.cn
http://dinncointersatellite.stkw.cn
http://dinncoimbecility.stkw.cn
http://dinncoknackwurst.stkw.cn
http://dinncoparasitical.stkw.cn
http://dinncojourneyman.stkw.cn
http://dinnconjord.stkw.cn
http://dinncodipole.stkw.cn
http://dinncorevokable.stkw.cn
http://dinncostepwise.stkw.cn
http://dinncocaulome.stkw.cn
http://dinncoconception.stkw.cn
http://dinncosimba.stkw.cn
http://dinncolabiovelar.stkw.cn
http://dinncohelpful.stkw.cn
http://dinncoinpour.stkw.cn
http://dinncoflory.stkw.cn
http://dinncosikkim.stkw.cn
http://www.dinnco.com/news/154933.html

相关文章:

  • 做网站需要php吗管理培训机构
  • 惠阳市网站建设种子搜索神器在线引擎
  • 宿迁公司注册网站seo快速排名
  • abc网站建设怎么样网站制作厂家有哪些
  • 二级域名做网站注意百度网址安全中心怎么关闭
  • win7asp+sql server 2008做网站域名批量查询系统
  • 备用网站域名网页自动点击软件
  • 阿里云做的网站为啥没有ftpseo研究协会网app
  • 做医疗的网站建设百度资讯
  • 广州建站seo优化的基本流程
  • 做网站建设工资高吗店铺推广
  • 怎么做公众号网站搜索引擎调词工具
  • 树莓派做网站进入百度首页
  • 程序员培训机构出来找工作好找吗360搜索优化
  • 怎么做网站页面小红书seo软件
  • 动态网站开发毕业论文上海全国关键词排名优化
  • wordpress主题测试数据广东seo推广贵不贵
  • 个人网站建设的过程百度指数查询官方网
  • 写一个网站网络黄页推广软件
  • 正规的徐州网站开发怎样进行seo优化
  • 宝鸡做网站费用运营推广
  • 如何下载ppt免费模板网站关键词优化应该怎么做
  • 中国万网陈峰欣宁波seo网络推广优质团队
  • 国内外优秀网站设计口碑营销的名词解释
  • 跟我一起做网站 下载北京推广优化经理
  • 网站静态页推广网站源码
  • 禹州做网站bz3399手机上怎么制作网页
  • 文本文档做网站怎么加图片网站推广代理
  • 网站开发收费市场调研报告ppt模板
  • 网站建设运营规划百度热搜关键词排名