关系经济人类预测化学自然
中准网
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

接口是什么(java接口是干什么用的)

7月11日 天浪楼投稿
  引
  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。
  那么,java中抽象类和接口的区别是什么?本文我们将详解Java中接口和抽象类的区别。
  抽象类:Java中被abstrac关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为抽象方法,抽象方法是特殊的方法:只有声明,没有具体实现。例如:packagecom。yiyi。vx。抽象类publicabstractclassDemo{抽象方法publicabstractvoidmethod1();}
  如果一个类中含有抽象方法,那么这个类一定是抽象类,且必须由abstract关键字对类进行修饰。java语法规定抽象类不能被实例化
  得到结论A。抽象类不能被实例化
  刚刚也有提到,当一个类中含有抽象方法时,那这个类一定是抽象类。但是抽象类不一定含有抽象方法。
  得到结论B。包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;
  没有抽象方法的抽象类有啥作用呢?
  无抽象方法的抽象类HttpServlet源码如下所示:publicabstractclassHttpServletextendsGenericServlet{protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{Stringprotocolreq。getProtocol();StringmsglStrings。getString(http。methodgetnotsupported);if(protocol。endsWith(1。1)){resp。sendError(405,msg);}else{resp。sendError(400,msg);}}protectedlonggetLastModified(HttpServletRequestreq){return1L;}protectedvoiddoHead(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{if(DispatcherType。INCLUDE。equals(req。getDispatcherType())){this。doGet(req,resp);}else{NoBodyResponseresponsenewNoBodyResponse(resp);this。doGet(req,response);response。setContentLength();}}protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{Stringprotocolreq。getProtocol();StringmsglStrings。getString(http。methodpostnotsupported);if(protocol。endsWith(1。1)){resp。sendError(405,msg);}else{resp。sendError(400,msg);}}protectedvoiddoPut(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{Stringprotocolreq。getProtocol();StringmsglStrings。getString(http。methodputnotsupported);if(protocol。endsWith(1。1)){resp。sendError(405,msg);}else{resp。sendError(400,msg);}}。。。。。}
  可以看出,它的默认方法均为非抽象方法。但它却是实实在在以abstract修饰的抽象类。这么做,就可以让它的子类在继承后,选择性的去复写抽象类的方法,这样就更加灵活和便捷,不需要复写的方法就不会在子类进行一个复写操作。
  从这里可以看出,抽象类本身就是为了继承而存在的,如果创建了抽象类而不去继承它复写它的方法的话,那么这个抽象类就白创建了。
  得到结论C。抽象类中的抽象方法的修饰符只能为public或者protected,默认为
  抽象类还有两个其他特性:
  D。一个子类继承一个抽象类,则子类必须实现父类抽象方法,否则子类也必须定义为抽象类;
  E。抽象类可以包含属性、方法、构造方法,但是构造方法不能用于实例化,主要用途是被子类调用
  接口:Java中接口使用interface关键字修饰,特点为:
  a、接口可以包含变量、方法;变量被隐式指定为publicstaticfinal,使用private修饰编译器会报错。而方法会被隐式地指定为publicabstract方法且只能是publicabstract方法(用其他关键字,比如private、protected、static、final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法
  b、接口支持多继承,即一个接口可以extends多个接口,间接的解决了Java中类的单继承问题;
  c、一个类可以实现多个接口;
  d、JDK1。8中对接口增加了新的特性:(1)、默认方法(defaultmethod):JDK1。8允许给接口添加非抽象的方法实现,但必须使用default关键字修饰;定义了default的方法可以不被实现子类所实现,但只能被实现子类的对象调用;如果子类实现了多个接口,并且这些接口包含一样的默认方法,则子类必须重写默认方法;(2)、静态方法(staticmethod):JDK1。8中允许使用static关键字修饰一个方法,并提供实现,称为接口静态方法。接口静态方法只能通过接口调用(接口名。静态方法名)。
  如下例子所示:publicinterfacePerson{publicstaticfinalinta10;JDK1。8defaultvoidsayHello(){System。out。println(HelloWorld);}publicvoidsay();}publicabstractclassPerson{publicabstractvoidsay();publicvoideat(){};}
  如上述代码所示:
  接口只能是功能的定义,而抽象类既可以为功能的定义也可以为功能的实现。
  接口与抽象类的区别
  相同点
  (1)都不能被实例化(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
  不同点
  (1)接口只有定义,不能有方法的实现,java1。8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
  (2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
  (3)接口强调特定功能的实现,而抽象类强调所属关系。
  (4)接口成员变量默认为publicstaticfinal,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
投诉 评论 转载

学it到哪里(从it到期货)针对这个问题主要是从两个方面去斟酌,第一是你所在的城市,如果是一二线的话,例如:北上广,那么选择上的优势就有了;而对于一些三四线城市的孩子来说,其实学习的目的之一就是获取更多优……狗为什么会哭(狗狗哀嚎跟哭一样是什么原因)狗狗什么情况下会流泪?使狗狗流泪的因素很多,例如自身情绪、身体不适,狗狗在智商或者心理上与我们非常相似,主人要记住这六点学会观察、区分狗狗流泪的原因。1。预感狗狗很……接口是什么(java接口是干什么用的)引对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。那么,java中抽象类和接口的区别是什么?本文我们将……川s是哪里(s是哪里的车牌)以前初中学地理的时候,老师教过一首打油诗,知道中国有23个省,5个自治区,4个直辖市,2个特别行政区两湖两广两河山,五江二宁青陕甘,云贵西四北上天,内重……星火教育怎么样(广州十大诈骗培训机构)昨晚(4月23日),江苏省教育厅、民政厅等多个部门联合出台校外培训机构整治方案,从即日起到明年6月,重点排查培训机构有无重大安全隐患,有无办学资质,是否存在超纲教学行为等情况。……四天王的过去与未来太阳的日昇与日落在90年代,日本各大车厂相继推出性能跑车,以无穷的改装潜力,及不亚于欧美跑车的性能,震撼当时世界车坛。而最具代表性的四部车,ToyotaSupra、HondaNSX、Mazda……qq群怎么转让(qq群秒加1活人)QQ群运营现在以不是什么热门的技术,很多人都做得有声有色。在互联网领域,很多人晒QQ群排名、QQ群组、高级群。。。。。。各式各样应有尽有。把一个群从1个人做到2000人,……Mac电脑如何玩传说对决教你下载安装画质调整按键教学随着现在的生活水准越来越高,大家购买苹果的产品也是越来越多了,那么苹果的产品当中有很多的功能大家是未必知道如何去使用的,当然也包括要去多了解苹果新出的新功能之类的,那么今天小编……日本女足球星永里优季加盟男足球队近日日本女足球星永里优季加盟男足球队登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了……我想借私人10000元(我要借钱马上到账2万)年前一分不剩,年前后一毛没挣,复工初期手头紧怎么办?一些小伙伴们想借钱,却害怕一开口就遭到亲朋好友尴尬而不失礼貌的拒绝,更怕借钱之后连亲戚和朋友都做不成了。别犯难,今天小编就给……教大家涨水的朋友圈怎么发近日有关于教大家涨水的朋友圈怎么发的问题受到了很多网友们的关注,大多数网友都想要知道教大家涨水的朋友圈怎么发的具体情况,那么关于到教大家涨水的朋友圈怎么发的相关信息,小编也是在……曾经沧海难为水的意思(一个男人对我说曾经沧海难为水)曾经沧海难为水:字面意思:曾经在广阔的大海上经历过了大风大浪,就不会再去那些小溪、小河的景象,大海之水绝非小溪小河之水可以与之相比。其比附之意是,经历过一次刻骨铭心……
贴胸贴后一圈变黑怎么回事平时穿胸贴好还是内衣好儿童误服有机磷农药中毒的发病机制暴敛造句用暴敛造句大全金莎为什么不红(金莎为什么越老越漂亮)拾遗补缺异地恋怎么维持大秘籍让异地恋不再是爱情杀手一里等于多少米(十万八千里等于多少米)从健康到生产力机器人如何改变我们的工作方式换掉造句用换掉造句大全过年喝酒需注意解酒种解酒食物要牢记孕期胎儿有什么营养需求你仔细了解过吗神奇的姜撞奶为什么姜汁会使牛奶凝固(被姜汁撞上的牛奶为什么会
莱珀妮防晒霜怎么样?laprairie防晒霜多少钱范一飞谈数字货币既不完全按照账户去管理,也不能照搬纸币去要求情系驼梁山哈兰德世界杯期间我可能去海滩期待自己的第一场曼市德比唠叨的爱亚米契斯《爱的教育》读后感a罩杯和b罩杯有什么区别穿内衣a杯b杯没什么区别?神武4到底好不好玩,突然想玩?热传聚热点网 小学生我爱我家作文100字范文名老中医说药晨起头晕!晚上清醒!饭后犯困。。小心高粘血症九九吃对菜丨艾叶煎蛋,宝宝爱吃还能健脾除湿助生长新生儿黄疸吃什么药最好

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州