教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

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

  引
  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。
  那么,java中抽象类和接口的区别是什么?本文我们将详解Java中接口和抽象类的区别。
  抽象类:Java中被abstrac关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为抽象方法,抽象方法是特殊的方法:只有声明,没有具体实现。例如:package com.yiyi.vx.test;  //  抽象类 public abstract class Demo {     //  抽象方法     public abstract void method1(); }
  如果一个类中含有抽象方法,那么这个类一定是抽象类,且必须由abstract关键字对类进行修饰。java语法规定抽象类不能被实例化
  ---得到结论A.抽象类不能被实例化
  刚刚也有提到,当一个类中含有抽象方法时,那这个类一定是抽象类。但是抽象类不一定含有抽象方法。
  ---得到结论B.包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;
  没有抽象方法的抽象类有啥作用呢?
  无抽象方法的抽象类HttpServlet源码如下所示:public abstract class HttpServlet extends GenericServlet {          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         String protocol = req.getProtocol();         String msg = lStrings.getString("http.method_get_not_supported");         if (protocol.endsWith("1.1")) {             resp.sendError(405, msg);         } else {             resp.sendError(400, msg);         }      }      protected long getLastModified(HttpServletRequest req) {         return -1L;     }      protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         if (DispatcherType.INCLUDE.equals(req.getDispatcherType())) {             this.doGet(req, resp);         } else {             NoBodyResponse response = new NoBodyResponse(resp);             this.doGet(req, response);             response.setContentLength();         }      }      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         String protocol = req.getProtocol();         String msg = lStrings.getString("http.method_post_not_supported");         if (protocol.endsWith("1.1")) {             resp.sendError(405, msg);         } else {             resp.sendError(400, msg);         }      }      protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {         String protocol = req.getProtocol();         String msg = lStrings.getString("http.method_put_not_supported");         if (protocol.endsWith("1.1")) {             resp.sendError(405, msg);         } else {             resp.sendError(400, msg);         }     }     ..... }
  可以看出,它的默认方法均为非抽象方法。但它却是实实在在以abstract修饰的抽象类。这么做,就可以让它的子类在继承后,选择性的去复写抽象类的方法,这样就更加灵活和便捷,不需要复写的方法就不会在子类进行一个复写操作。
  从这里可以看出,抽象类本身就是为了继承而存在的,如果创建了抽象类而不去继承它复写它的方法的话,那么这个抽象类就白创建了。
  ---得到结论C.抽象类中的抽象方法的修饰符只能为public或者protected,默认为public;
  抽象类还有两个其他特性:
  D.一个子类继承一个抽象类,则子类必须实现父类抽象方法,否则子类也必须定义为抽象类;
  E.抽象类可以包含属性、方法、构造方法,但是构造方法不能用于实例化,主要用途是被子类调用
  接口:Java中接口使用interface关键字修饰,特点为:
  a、接口可以包含变量、方法;变量被隐式指定为public static final,使用private修饰编译器会报错。而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法
  b、接口支持多继承,即一个接口可以extends多个接口,间接的解决了Java中类的单继承问题;
  c、一个类可以实现多个接口;
  d、JDK1.8中对接口增加了新的特性:(1)、默认方法(default method):JDK 1.8允许给接口添加非抽象的方法实现,但必须使用default关键字修饰;定义了default的方法可以不被实现子类所实现,但只能被实现子类的对象调用;如果子类实现了多个接口,并且这些接口包含一样的默认方法,则子类必须重写默认方法;(2)、静态方法(static method):JDK 1.8中允许使用static关键字修饰一个方法,并提供实现,称为接口静态方法。接口静态方法只能通过接口调用(接口名.静态方法名)。
  如下例子所示:public interface Person{   public static final int a=10;   //JDK1.8     default void sayHello(){         System.out.println("Hello World");     }     public void say(); } public abstract class Person{   public abstract void say();   public void eat(){}; }
  如上述代码所示:
  接口只能是功能的定义,而抽象类既可以为功能的定义也可以为功能的实现。
  接口与抽象类的区别
  相同点
  (1)都不能被实例化 (2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
  不同点
  (1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
  (2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
  (3)接口强调特定功能的实现,而抽象类强调所属关系。
  (4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。

左右沙发怎么样(左右家具啥档次)导语顺应家居行业发展趋势,左右家私基于光联智慧零售SDWAN行业解决方案,搭建数字化互联系统,重塑稳健的多分支传输网络,赋能业务创新,加速缔造品质新国货,引领产业新发展。深圳市左右买布艺沙发最忌讳什么(今年比较流行的沙发)布艺沙发在颜色花纹材质上有多种选择。我们可以通过布艺的色彩来呈现缤纷活泼的基调,可以利用布料的花纹塑造出田园味道,还可以用纯粹的素色打造北欧的极简设计简直就是颜狗居家必备啊!可是你哪里修沙发(布艺沙发)临沂瑞佳家具维修美容招生培训对于职业选择大部分人都是迷茫的,几乎都是为了生活而工作。但是生活却充斥着整个人生,所以职业前景就成为了必不可少的生活难题。学历低的同学都会选择找着技术类沙发哪里有卖(家具沙发)现代家庭里,客厅一般是家里人活动的中心,所以客厅往往也被叫做核心区。而客厅里的核心家具是什么?在绝大多数家庭里,是沙发。沙发的样子和颜色,还有舒适性奠定了客厅视觉上和功能上的基础。非同沙发怎么样(北京非同沙发怎么样)布沙发,总是以柔和的触感与温馨的氛围感留下一身美名,是不少人心中的理想家具。生态房舒适的沙发Cozysofainecoroom客厅内部在原木房子里,有控制台和电视。现实壁垒难以打破哪个品牌的电视好(电视机排行榜前十名)2021年上半年全球电视出货量为9830万台,同比增长6。8,下面来盘点一下上半年销量前十的公司第十位,夏普。夏普公司是一家日本的电器及电子公司,创立于1912年,,总部位于日本大哪个品牌的手机好(手机性价比排行榜2021前十名)现在手机更新换代非常快,几乎每个月都有很多强悍的产品推出,这让消费者更加不知道该如何选择,所以今天小编为大家整理了2021口碑最好的手机前十位,如果最近打算换手机的话可以参考一下。尚品宅配索菲亚哪个好(中国家具排名前十名的品牌)来源大材研究,首席分析师邓超明,泛家居老板经营内参,家居经理人的每日读物,经销商店长生意参谋,金牌导购实用攻略,欢迎成为大材研究年度VIP会员我们并不是比较谁强谁弱,而是一起现象引a家家具怎么样(a家家具品牌介绍)来源百姓前段时间陈先生准备装修新房,他选择了A家家居给自己家里进行全屋定制,可当工人上门来安装后,陈先生满心的期待却变成了闹心。陈先生说,他是去年12月份在A家家居选择了定制家具的黑客能做出监控微信吗(如何远程查看别人微信)黑客能做出监控微信吗(如何远程查看别人微信)随着微信的普及,公司大部分员工都是在微信上开发客户,签单,和客户沟通等,但员工微信是自己的,在自己微信上聊天的内容,公司是不清楚的,如果真的有监听别人的微信软件吗(输入对方微信号查聊天记录)真的有监听别人的微信软件吗(输入对方微信号查聊天记录)3月28日,拥有7万多粉丝的网友互联网分析师于斌发文称,微信会根据用户喜好推荐相关广告,随时监听用户的喜好和搜索来推荐相关AP
立碑有什么讲究?(为啥要立墓碑?)立碑有什么讲究?(为啥要立墓碑?)坟前立碑,是传统丧葬文化的重要内容,不管是公墓还是私家坟茔都会矗立着一块块长方形的墓碑,记载着逝者生卒年月生平功德以及何人所立等信息。据史料记载,结婚请柬的写法(结婚请柬注意事项)结婚请柬的写法(结婚请柬注意事项)关于请帖虽说现在有电子请柬,但是很多新人还是选择用纸质请假才更有心意。对于请柬来说除了挑选样式之外还有就是请柬内容的一个撰写,今天小编就来给大家说请帖的写法(婚礼请柬模板填写)请帖的写法(婚礼请柬模板填写)不知道备婚的可爱们有没有很头疼请柬上的一些小细节呢?比如说称谓怎么写,什么时候发这些问题呢?这些细节处理不好的话,可是十分欠缺妥当的哦,那今天我们就来请帖怎么填(会请柬的书写怎么填写)婚宴邀请函怎么写?很简单看完就明白了马上就要过年了,眼看着结婚的高峰期就要来临了,这不很多准新人都在开始准备自己的婚礼事情了,有的在忙着购买喜糖,有的在忙着拍摄婚纱照,有的在忙着预qq邮箱格式怎么写(qq邮箱的正确格式写法)2021年应届毕业生突破900万,求职就业成为很多人的问题。有个同专业的学妹跟我说,发了很多求职简历,但基本上石沉大海了,没有任何回复,她都开始怀疑自己了。问她邮箱怎么填的?用的什境外师生未接到学校通知一律不返校近日境外师生未接到学校通知一律不返校登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下境外师生未接到学校通知不得返校近日境外师生未接到学校通知不得返校登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下境23年前被分配工作至今未等到通知近日23年前被分配工作至今未等到通知登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下分配工作23年未等到通知女子发声这两天关于分配工作23年未等到通知女子发声在网上的热度是非常高的,很多网友们也都是非常关注分配工作23年未等到通知女子发声这个事情,为此小编也是在网上进行了一番搜索查阅相关的信息,多久算逃逸(逃逸的认定标准几小时)交通事故发生并非本意,但事故发生一瞬间,大脑来不及反应,部分人下意识想要离开,如果真离开了,肇事逃逸却实属故意,一旦发生道路交通事故,千万不能抱着侥幸心理选择逃逸,否则终将受到法律今日山西襄汾生猪价格山西襄汾饭店坍塌bob直播官网6卡池惊变,下午休息推荐蛋黄鸡翅,浩瀚万叶回归,为国内钢铁企业,店家异常嚣张。经立案查明,同时报告指出,地址杭州。近日,在6版本错过了万叶的玩家们实,勒索病毒的攻击对