范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Java比较抽象类与接口的异同

  一.抽象类(一)概念
  在继承的层次结构中,每个新的子类都使类变得更加明确和具体。如果从一个子类向父类追溯,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类(abstract class)。在类的头部使用 abstract 修饰符表示该类为抽象类。 (二)抽象类和抽象方法
  同样用 abstract 声明抽象方法。抽象方法(abstract method)只定义成员方法的接口形式,而没有具体操作。只有派生类对抽象成员方法的重定义才能真正实现与该派生类相关的操作。在各子类继承了父类的抽象方法之后,再分别用不同的语句和方法体来重新定义它,形成若干个名字相同、返回值相同、参数列表相同、目的一致但是具体实现有一定差别的方法。抽象类中定义抽象方法的目的是实现一个接口,即所有的子类对外都呈现一个相同名字的方法。
  1.一个包含抽象方法的类必须声明为抽象类
  几点说明: 抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类。 即使子类的父类是具体的,这个子类也可以是抽象的。 当父类的方法实现在子类中变得无效时,子类可以重写父类的方法并将它定义为抽象的。
  2.抽象方法只有定义而没有实现,它的实现由子类提供
  下面定义了一个抽象类Object类:
  public abstract class Object {
  public abstract double getArea();
  public abstract double getPerimeter();
  }
  Object类是多个子类的父类,由于在多个子类中都要用到getArea()方法和getPermeter()方法,所以在父类中定义比较好;由于计算面积和周长的getArea()方法和getPermeter()方法在不同子类里的实现方式不同,所以Object类中定义的这两个方法的实现只能由子类提供。
  3.抽象类无法被直接实例化,可以让子类继承然后实例化子类
  通过一个例子来说明:
  public abstract class Person {
  //定义一个抽象方法
  public abstract void isSmoke();
  }
  //学生类
  class Students extends Person{
  //继承抽象类后抽象类中的抽象方法必须在子类中实现
  public void isSmoke() {
  System.out.print("Students can"t smoke.");
  }
  }
  //教师类
  class Teachers extends Person{
  public void isSmoke() {
  System.out.print("Teachers can smoke.");
  }
  } (三)使用抽象类的意义
  因为抽象类不能实例化对象,必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,更有利于代码和程序的维护。同时,抽象类也是Java面向对象的一个重要体现。 二.接口(一)概念
  接口(Interface),在Java编程语言中是一个抽象类型,是象方法的集合。
  接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
  接口有以下特性: 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。 接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。 接口中的方法都是公有的。 (二)语法
  1. 定义: 一个简单的接口拥有全局变量和抽象方法。在接口中的所有方法都必须只声明方法标识,而不要去声明具体的方法体,因为具体的方法体的实现是由继承该接口的类来去实现的。
  接口定义的一般形式为:
  [访问控制符]interface <接口名> {
  类型标识符final 符号常量名n = 常数;
  返回值类型 方法名([参数列表]);
  …
  }
  定义接口实例:
  interface Human {
  //定义一个全局变量
  final String txt="吸烟有害健康";
  //定义一个抽象方法
  public void isSmoke();
  }
  2.实现: 要实现接口,就必须去实现接口规定的方法,只有把接口规定的抽象方法都给实现了,才承认这个类实现了这个接口,实现了这个接口代表的某种功能。使用 implements 关键字实现接口。
  实现接口实例:
  class Student implements Human{
  public void isSmoke() {
  System.out.println("Students can"t smoke.");
  }
  public static void main(String[] args) {
  Student h=new Student();
  h.isSmoke();
  System.out.println(txt);
  }
  }
  3.接口的继承
  子接口可以对父接口的方法和常量进行重写。例如:
  // 接口 Student 继承 Human
  public interface Student extends Human {
  // 重写父接口中的txt
  String txt = "未成年禁止吸烟";
  // 重写父接口中的isSmoke()方法
  void isSmoke();
  }
  注意: 在Java中,类的多继承是不合法的,但接口允许多继承。
  public interface C extends A, B 三.比较抽象类与接口Q: 为什么有了抽象类还要接口?
  看起来抽象类除了多继承以外,完全可以完成接口所作的事情,为什么还需要定义接口呢? 避免java单继承的局限 避免多继承带来的复杂性和低效性 面向接口编程带来的优势。降低程序间的耦合,易扩展,易维护 Q: 如何确定在什么情况下应该使用接口,什么情况下应该使用类呢?
  抽象类和接口都是用来指定多个对象的共同特征的。那么如何确定在什么情况下应该使用接口,什么情况下应该使用类呢?一般来说,清晰描述父子关系的强的"是......的一种"关系应该用类建模。弱的"是..的一种"关系也称为类属关系,它表明对象拥有某种属性,可以用接口来建模。

NASA说要抢先登月!是中国追太紧?还是美国的航天衰落太快?据日本经济新闻12月11日发表的对美国宇航局(NASA)局长比尔尼尔森的采访报道。尼尔森在采访中一边大赞日美关系,一边无端渲染所谓中国太空计划不透明,还抱怨中国是极少数不愿同美国合美国从未登月?NASA局长说漏嘴中国不愿合作,美将抢先登上月球近日,日本媒体发表了对美国宇航局(NASA)局长比尔纳尔逊的专访。在这篇采访中,纳尔逊一如既往的对中国大加指责,说中国的太空计划不透明,还抱怨说说中国是全世界极少数不愿意跟美国进行重罚!广东神射被联盟禁赛2场,缺席辽粤大战在今天结束的一场CBA常规赛当中,广东队兵不血刃的击败了天津队,当然对于这个结果来说也并不是特别的稀奇,双方最近35次交锋,天津队仅仅赢过一次,广东男篮也取得了第二阶段三连胜的成绩微软将收购伦敦证交所4股权,未来10年内提供云产品等服务伦敦证交所视觉中国资料图美国科技巨头微软将成为伦敦证交所集团(LSEG)的股东。当地时间12月11日,微软发布官方声明,将通过黑石(Blackstone)加拿大养老金(CPP)新加航天新征程航天员返回后身体会经受怎样的考验央视网消息从距地面约400公里的空间站回到地球,习惯了在太空中飘来飘去的航天员们,在重新获得重力的瞬间,会是一种什么样的感觉?身体又会经受怎样的考验?此外,地面上的工作人员如何帮助荷兰离开了世界杯,但留下了这个世界杯赛场上,许多国家的球衣都有着自己标志性的颜色,比如红色的比利时新华字典色的葡萄牙蓝白条的阿根廷橙色的荷兰就在今天凌晨的世界杯14决赛赛场上,刚提到的后面这两支国家队迎头对上,八位门将当选全场最佳,一届属于门将的世界杯?这是一届属于门将的世界杯?截止半决赛前,门将8次当选全场最佳,已创纪录!门将的高光表现是本届世界杯的一个焦点话题。根据国际足联每场比赛赛后评选的全场最佳球员结果,本届世界杯共有8场历届世界杯吉祥物简笔画我是哈尔滨球迷崔老五(崔跃军),历届世界杯吉祥物简笔画作者第24届2022北京冬奥会,吉祥物冰墩墩非常火爆,供不应求。女儿崔莹画了一幅冰墩墩,画的非常好。我就照葫芦画瓢,也画了一个乒超联赛山东鲁能包揽双冠,樊振东孙颖莎收获MVP山东鲁能赢得本赛季男团冠军。中国乒乓球协会供图新京报讯(首席记者孙海光)12月11日晚,2022年乒超联赛男团决赛在威海结束,山东鲁能在3比2战胜上海地产集团队后包揽了男女团双冠。拉伊卜王子的身世首次被公开卡拉卡塔尔世界杯小王子拉伊卜,因为在观众席上发表对球队不满的表情,在短短半个月内便吸粉数千万,成为了千万级大V。小王子在走红后也有了偶像包袱,他看到有视频博主在拍摄的时候,第一反应广东胜天津,杜润旺绊人被夺权将禁赛两场,徐杰直言需要更加冷静CBA第12轮,广东男篮对阵天津男篮!本场比赛,广东队在开局打得很顺,一度将领先优势扩大到两位数,不过第二节有所松懈,被天津队抓住机会扳平比分!关键时刻,广东队再度发力,展现了强队
雷柏RGB拼色机械键盘防水防尘背光实用性强大,爱了雷柏这个外设品牌相信很多人都知道,V叔也使用过它的多款产品,比如键盘鼠标耳机,不过用的最多的还是它的键盘和鼠标,像E9350G刀锋超薄无线蓝牙键盘就让人印象深刻。除了外观和颜值在线罗永浩称仍要收购苹果我能让苹果上三个台阶不止Tech星球6月10日消息,日前,罗永浩在直播间吐槽,苹果现在产品做成那个样子,我要去做他们的产品负责人,肯定这公司产品能造福无数人,上去三个台阶不止。他还表示,不是我非要自己做老生物降解塑料新标准6月起实施,行业将迎巨变,金发科技强者恒强本文来源时代财经作者陈既生物降解塑料行业将迎来规范化发展。6月1日,由国家市场监督管理总局国家标准化管理委员会制定并发布生物降解塑料与制品降解性能及标识要求(以下简称标识要求)正式阿里腾讯京东,大厂都入局!这个行业的商业排位赛加速天下网商刘雨锟编辑吴羚玮由虚入实,围绕元宇宙,一场通过技术与商业加速融合的排位资格赛正在互联网大厂上演。元宇宙火遍全球之势愈演愈烈,最早从创意艺术技术等多个专业圈层发轫,逐步在商业申通快递618预售极速达单量劲增200,当次日达率超96随着5月31日晚仅用28分钟就在北京送出今年618预售极速达第一单,申通快递正式进入618时间。作为本轮疫情之后的第一个电商大促,今年618商家全力备货消费者热情饱满,快递量显著增后华为时代iQOO竟成小米最大对手从中华酷联到华米OV,我国手机市场格局一直在变。在麒麟芯片供应受限之前,小米市场目标很明确对标华为高端市场,让子品牌红米来应对荣耀。只是跟随华为一度拿下国内市场半壁江山的荣耀,用销五分钟看懂!iOS16M2芯片iPadOS16亮点都在这大家期待已久的苹果年度开发者大会(WWDC22)终于开始了,会上推出了iOS16,iPadOS16,macOS13,以及watchOS9等软件系统。同时发布了第二代自研电脑芯片M2黄金频段乃第四大运营商杀手锏,农民将获得低价5G服务中国广电正式发布5G品牌,代表着这家运营商推出5G服务又近了一步,柏铭科技认为对于这家运营商来说,700MHz黄金频段就是它的杀手锏,而它的机会将是农村包围城市,通过抢占农村广阔的联想零碳之路从零碳服务到零碳工厂过去一年,绿色低碳环保,长期主义与可持续发展成为各行各业的共识。在联想,则有着一组43210的数字密码,它代表了联想在绿色低碳之路上不断前行。4是联想自主研发的低温锡膏焊接工艺深冷微软再曝黄色丑闻,HoloLens3前景堪忧据外媒报道,微软HoloLens项目主管亚历克斯基普曼将离开微软,原因是他被指控在公司内部有不当举动,以及对女性同事的性骚扰行为。如果从常规渠道了解,外界会被告知微软云计算主管斯科甄嬛传演员今昔对比有人被唾骂,有人没戏拍,有人转幕后当初的甄嬛传是多少人的下饭神剧,人们对里面坐拥后宫却仍不知足的皇帝大猪蹄子嗤之以鼻,对剧里宫斗的戏码如数家珍,对甄嬛后来的黑化津津乐道。现在让我们来看看里面演员的现状吧。01孙俪孙