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

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: 如何确定在什么情况下应该使用接口,什么情况下应该使用类呢?
  抽象类和接口都是用来指定多个对象的共同特征的。那么如何确定在什么情况下应该使用接口,什么情况下应该使用类呢?一般来说,清晰描述父子关系的强的"是......的一种"关系应该用类建模。弱的"是..的一种"关系也称为类属关系,它表明对象拥有某种属性,可以用接口来建模。

100岁的杨振宁思维敏捷,健康矍铄!他的3大养生秘诀值得学习借鉴近日诺贝尔物理学奖获得者中国科学院院士清华大学高等研究院名誉院长杨振宁先生度过了自己100岁的生日,杨振宁先生和李政道先生在1967年获得诺贝尔物理学奖,被誉为20世纪最伟大的物理HELLOKITTY2020春夏时装秀,蝴蝶结包包蝴蝶结翅膀。时尚前沿每一个女生的心里都装着一只放不下的HELLOKITTY,这绝对是少女情怀的代表,粉粉嫩嫩圆圆的脸蛋,左耳上萌萌的蝴蝶结,没有嘴巴,简直甜到心里的节奏而且,大家知道吗?伦敦时惊呆了!这5款防晒检测出致癌物,赶紧照着扔掉夏天来了,想必很多小可爱又囤了不少防晒用品。但有5款防晒用品要注意啦!近日,强生公司紧急召回其旗下品牌的露得清和艾维诺5款防晒喷雾,并强调消费者停止使用该产品。据悉,是因为在样品检树立四座商务MPV新典范,售价33。88万元起,上汽大通MAXUSG20PLUS四座版耀世来袭豪华不止于表面,更来源于不凡匠心!融入对美学的极致坚守,以及为用户创造出行价值的执着追求,10月27日,为精英群体特别打造的上汽大通MAXUSG20PLUS四座版耀世登场,四座曼哈猝不及防就入冬?别忘了为爱车也准备一双冬靴猝不及防就入冬?别忘了为爱车也准备一双冬靴!据百度指数,每年10月至次年2月雪地胎搜索指数都会达到全年峰值,其中2020年冬季雪地胎搜索指数同比上涨6。4。由此可见,越来越多的车主穿越蛮荒森林,遇见全新雪佛兰开拓者轻混版当繁杂的都市生活将我们变成模式化,当矗立的钢筋水泥将我们的世界变成灰白色,大自然正在我们的身边悄然褪去,远离城市的桎梏,寻找自然的神奇,便成为我们的心愿。那到哪里去寻找一块大自然的标杆之上再进化,第十一代思域郑州区域首次试驾继全国上市后不久,10月23日,第十一代思域冠军之路激擎挑战郑州区域深度试驾会在越无止境驾控体验公园正式开启,新车售价区间在12。99万16。39万,这代表其在绿城郑州已经开启了新安全生产法实施智慧建造助力建筑企业加速建设双重预防机制2021年6月10日,十三届全国人大常委会第二十九次会议表决通过了关于修改安全生产法的决定。修改后的安全生产法已于9月1日施行。新安全生产法解读新安全生产法明确要求生产经营单位要自建筑行业智慧建造转型势在必行国家十四五规划提出,要发展智慧建造,推广绿色建材装配式建筑和钢结构住宅,建设低碳城市,再次给智慧建造领域注入新动力。智慧建造从建筑信息化智慧建造再到智慧节能建筑,一路走来已有数年时碳达峰十大行动发布建筑产业数字化转型迫在眉睫近日,国务院印发2030年前碳达峰行动方案。方案提出重点实施碳达峰十大行动其中明确提出城乡建设碳达峰行动。推进城乡建设绿色低碳转型,加快提升建筑能效水平,加快优化建筑用能结构,推进提到海尔想到冰洗空,更名海尔智家后呢?你想到的又是啥?8月25日,海尔智家联合青岛商务局发布智慧家庭全民升级计划,为用户带来衣食住娱全场景方案以及家电家装一体化整装局部焕新方案。随着这一计划的启动,智家体验云也从概念迈入进区入户的全面
在这台iPhone面前,iPhone13一点也不香如果你的预算是6000,你会选择哪一款iPhone?是新品iPhone13还是老款旗舰机?网友入手了iPhone12ProMax512GB,只花了6150元。他觉得iPhone12进入布展阶段!第四届进博会首批展品今日进场(ChinaIT。com讯)Handinhandwestand,allacrosstheland(我们手拉手,友谊传四方)10月23日上午11时5分,国家会展中心(上海)北广场气氛中国乔丹判赔美国乔丹35万?关注每天热搜的朋友大概对乔丹商标侵权案件多少都知道一些当大家都在狂欢倒数2021的到来这起商标侵权案终于也是有点眉头!乔丹体育被判赔35万并公开道歉不说别的,飞人乔丹想必不懂篮球的挑选游戏本,为啥散热性能看得非常重?玩游戏成了很多人的日常,但是在选择游戏本的时候,却遇到了困难。因为自己是小白,所以不懂如何挑选一款合适自己的笔记本。那么应该如果挑选一款适合自己的游戏本呢?其实只要看重价格用途硬件RTX30系显卡游戏本批量上线,应该如何选购?RT30系显卡游戏本上线已经有一段时间,而最近更是批量上线,如果手头的游戏本刚好需要更换,那么现在是时候入手新款了,毕竟上线游戏本多了,挑选起来,才有性价比和非性价比之分。那么应该双11看点天猫爱吆喝京东疲软苏宁迅猛国美不争气今年的双11是越来越热闹了,由去年的天猫和京东,逐渐出来了更多新的面孔,如苏宁国美,但是在双11的推广策略中,苏宁应该是最成功的一家,在双11的前半个月中,甚至截止到目前为止,苏宁亿万网友群殴联想,到底谁说的对?这两天,联想投票门和被扣政治帽子的事件持续发酵,做为一个理性的网友,看到朋友圈的各种联想文章,纷至踏来,一个接一个好不精彩。正方是联想,反方是亿万网友,从目前的情况来看,反方的文章没有狼性的联想它的冤屈与堕落联想被扣帽子的事件不断得到发酵,联想的老爷子不得不出来,发了一封内部信行动起来,誓死打赢联想荣誉保卫战。不得不说联想老爷子的厉害,一呼百应,一群中国大公司的大佬为其呐喊助威,还有很凌晨三点不回家,写你苦逼的文章总能十万一觉醒来,又一篇文章凌晨3点不回家成年人的世界是你想不到的心酸刷屏了,看见了很多大佬都在转,心里想,连这些大佬都逃避不了这些贩卖焦虑和苦逼的鸡汤。同样的选题,同样的套路,同样的鸡汤前端CSS学习笔记旋转轮播图效果的实现自动旋转轮播图,无限循环1实现效果图代码!DOCTYPEhtmlhtmllangenheadmetacharsetutf8stylebody指定观察者与z0平面的距离,使具有三维位前端CSS学习笔记旋转头像效果实现效果视频视频加载中实现代码!DOCTYPEhtmlhtmllangenheadmetacharsetUTF8titletitlestyle。txspanimg设置对象使用圆角边