接口和抽象类的区别是什么?抽象类和接口的应用场景有哪些? 焦点报道
时间:2023-06-06 08:41:36来源:幸福云阳网

接口和抽象类的区别是什么?

抽象类和接口的相同点

1、都不能被实例化

2、接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。

抽象类和接口的区别

1、语法层面上的区别:

2、设计层面上的区别

1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。举个简单的例子,飞机和鸟是不同类的事物,但是它们都有一个共性,就是都会飞。那么在设计的时候,可以将飞机设计为一个类Airplane,将鸟设计为一个类Bird,但是不能将 飞行 这个特性也设计为类,因此它只是一个行为特性,并不是对一类事物的抽象描述。此时可以将 飞行 设计为一个接口Fly,包含方法fly( ),然后Airplane和Bird分别根据自己的需要实现Fly这个接口。然后至于有不同种类的飞机,比如战斗机、民用飞机等直接继承Airplane即可,对于鸟也是类似的,不同种类的鸟直接继承Bird类即可。从这里可以看出,继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如鸟是否能飞(或者是否具备飞行这个特点),能飞行则可以实现这个接口,不能飞行就不实现这个接口。

2)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。什么是模板式设计?最简单例子,大家都用过ppt里面的模板,如果用模板A设计了ppt B和ppt C,ppt B和ppt C公共的部分就是模板A了,如果它们的公共部分需要改动,则只需要改动模板A就可以了,不需要重新对ppt B和ppt C进行改动。而辐射式设计,比如某个电梯都装了某种报警器,一旦要更新报警器,就必须全部更新。也就是说对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。

抽象类和接口的应用场景有哪些?

1、如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。

2、如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。

3、如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。

标签: 接口和抽象类的区别 抽象类 接口

生活指南
  • 现金支票支取有哪些限制?使用支票有哪些注意事项?

    现金支票支取有哪些限制?买支票的话只能到你的开户行办理,通过你

  • 银行定期存款看不到利息是怎么回事?银行定期存款利息怎样算?

    银行定期存款看不到利息是怎么回事?银行定期存款到期之前都是不会显示利息的,只会显示存款本金,定期存

  • 外盘大于内盘什么意思?外盘和内盘分别代表什么?

    外盘大于内盘什么意思?通常的情况下股票中的内外盘是判断买方和卖方力量强弱的指标。当外盘大于内盘时说

  • 什么是结算担保金? 结算担保金的分类包括哪些内容?

    什么是结算担保金?结算担保金是指由结算会员依期货交易所的规定缴存的,用于应对结算会员违约风险的共同

  • 牛脑能吃吗?牛脑的营养价值?

    牛脑能吃吗?1 吃牛脑相对较好。一般情况下牛脑切不可以经常吃,只可以适量食用,由于牛脑中胆固醇含量相

  • 汽车时速表不动是怎么回事?跟随回家功能什么意思?

    汽车时速表不动是怎么回事汽车速度表不动,可能是车速的传感器损坏了,这时车主可以让维修人员来检查一

  • 余额宝赎回时间转到银行卡多久?余额宝赎回转入和余额宝赎回转出是什么意思?

    余额宝赎回时间转到银行卡多久?在余额宝提现一般分为两个小时和第二天。另外,节假日提现会有所不同。根

  • 在人行道上为什么有老鼠乱窜?路上遇见老鼠过街是什么预兆?

    在人行道上为什么有老鼠乱窜?其实这的野老鼠,确切是幼鼠。就是好多小老鼠跟在一个大(母)老鼠后面,一个

  • 中国银行忘记取款密码怎么办?登录密码和取款密码都忘了怎么办?

    如您忘记中行借记卡取款密码,您可登录手机银行通过账户管理-选择账户并点击-进入账户详情页面后点击图

  • 公积金贷款满足什么条件 公积金提取怎样绑定银行卡?

    公积金贷款满足什么条件 公积金提取怎样绑定银行卡?1、申请前连续缴存住房公积金的时间不少于六个月。

  • 股票买入多久显示持仓?怎么查某一天股票持仓情况?

    股票买入多久显示持仓?股票是属于实时交易的,股票买入就会显示持仓的。一般股票是在交易日的上午9:30

  • 实践中军婚的申请程序有哪些?军婚登记步骤有几步??

    军人婚姻有哪些申请程序?军人婚姻通常有哪些步骤?通常的步骤:(1)先得打一份结婚报告(基层部队有些还要

  • OPPO10系列全系标配长焦镜头吗?你期待吗?

    OPPOReno10系列全系标配长焦镜头,主打人像拍摄OPPO Reno10系列将于5月24日14:30发布,主打人像拍摄。O

  • 惠民保险的优点? 面瘫可以买百万医疗险吗?

    面瘫可以买百万医疗险吗可以。但需要注意以下几点:1 注意保险条款:不同的保险公司和产品在百万医疗险

  • 信用卡里可以存钱吗?信用卡存钱可以取出来吗?

    信用卡里可以存钱吗?可以可以存但是没必要,原因如下:信用卡存钱不想储蓄卡存钱那样可以产生利息;信用

  • 军人结婚登记要求具体内容是什么?关于军人结婚有哪些登记要求?

    关于军人结婚有哪些登记要求?军人结婚登记要求具体内容是什么?为结合军队的实际,贯彻落实2001年4月修

  • 民生
    • 港股能融资融券吗?融资融券新手教程来了

    • ​多栗多绿色食品荣获“2023中国森林食品交易博览会(杭州站)优质奖”

    • 中原消费金融怎么还款?中原消费金融借钱好下款吗?

    • 房屋抵押贷款利率和房贷利率哪个高?房屋抵押贷款抵押特征有什么?