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

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

保时捷Taycan电动汽车开始提升产能量产版将于9月发布保时捷官方发布消息称,保时捷首款纯电动跑车Taycan量产版将于今年9月全球首发,并将在年底前上市。这款纯电动跑车采用双电机驱动,总输出功率将超过600马力,其零百加速不到3。5秒谷歌为ChromeforAndroid引入更方便的多标签页浏览功能XDADevelopers的伙计们,刚刚对ChromeforAndroid的源码进行了逆向工程,结果发现谷歌正在为它开发一项超级实用的新功能。具体是在浏览器底部添加一行站点图标(T扎克伯格最新专访美国人恨我们,但我们在做正确的事情编译丨维克多编辑丨岑峰社会分裂,非左即右。这是最近扎克伯格对美国现状的最新评价。他认为这种状态是他和他的公司在美国得到恶意评价的最重要原因。我们惹怒了两个党派。我们不追随任何一方,美国新法拟让手机用户侧载App,苹果急忙致信称太危险据报道,苹果公司一直认为,iPhone手机用户的软件侧载行为会带来安全风险,但美国国会的一些议员认为,苹果夸大了这种安全隐忧。苹果日前向国会议员发出信件,进行了解释和呼吁。所谓软件漂亮的实力派杜伽K330W无线三模机械键盘Y1S1,我柜子里的杜伽产品库好久没有更新了,虽然知道杜伽已经出了K330W,但阴差阳错之下,一直没有到手一把,这次终于如愿以偿。DURGOD杜伽K330W无线蓝牙三模键盘,采用6罕见错版iPhone11Pro曝光苹果LOGO印歪卖出1。77万元来源快科技邮票经常有错版,手机也会有?没错,而且还是苹果iPhone,确切地说是上一代的iPhone11Pro。推特博主ArchiveInternal曝光了这款罕见的错版iPhon雷军给力!红米蓝牙耳机开始清仓不到60元,这次终于等到了往上数五年,那会整个耳机市场还主要是分为蓝牙耳机和有线耳机的,然而大多数人选择了有线耳机,因为当时的蓝牙耳机长这个样子这种被我们称为挂脖式蓝牙耳机,主打运动,但是配饰佩戴需要挂在脖iPhone14更香了4nm芯片8G内存4800万摄像头,打孔屏板上钉钉联发科在11月发布了旗下首款4nm芯片天玑9000,高通也在本月发布了新款4nm旗舰芯片,首款骁龙8Gen1手机motoedgeX30也已经正式发布。天玑9000和骁龙8Gen1的联想的出路在何方?必须改革面对一个病入膏肓的孩子一个承载亿万中国人希望的民族企业,我百感交集。1。联想从哪里来?中科院计算所投资130万元,外加500平为公用房,十一名科研人员。联想的前身诞生了!那时这个公元宇宙是什么意思?宇宙的定义不就是说的地球以外的无边无沿的无限无限大的时间和空间么?宇宙就是宇宙,谁也不知道有多大!有多长的寿命!谢谢悟空君邀答!元宇宙的火爆究竟是新机遇还是新泡沫?元宇宙目前尚无公无人买联想了?6000mAh大电池6。8英寸,999也无人问津联想这个品牌虽然主营的产品业务是电脑,但知情的人士都知道,当初他其实也很早就开始做手机业务了。不过在火了一段时间之后,联想手机很快式微,主要是因为后来的小米OV华为荣耀等快速崛起,
扫拖一体机哪个牌子好对于懒人的清洁神器,扫地机器人来说,很多人抱着好奇的态度,在没买之前会看大量的攻略,但是评测太多也容易让人眼花缭乱。那么作为普通消费者,如何从这么多对比评测中找到最适合自己的扫地机最高续航401km,5。99万就能买,哪吒V到底能不能选?随着造车新势力的兴起,许多新兴品牌加入了这一阵列之中,而哪吒汽车就是其一。不过对于国内的自主品牌,许多都是在布局高端化车型,而走亲民路线的实在少的可怜,要么续航低,要么价格高。不过展现8K极致魅力,海信ULED8KXDR电视U9GPro来袭在自主品牌领域,海信一直在专注技术的佼佼者,素有技术还得看海信的说法,可见海信在彩电行业的口碑和实力,受到消费者以及行业人士的认可。这也是为什么海信能保持多年销量排第一的原因之一。叁胖説如何重新定义甜品卡?GTX1060YYDS三胖说,每天聊点不一样的今日关键词甜品卡什么是所谓的甜品显卡?RTX2060S出来了你说是甜品显卡,RTX3060ti出来了你又说甜品显卡。现在RTX3070ti出来了你还说是甜品目前这三部千元机最值得买,性价比高,不容易吃亏哈喽大家好,我是你们的老朋友小馨,每天都会给大家更新我的原创内容,说到千元手机,或许很多人都会有些抗拒,总觉得便宜没有好货。其实大可不必这样想,要知道现在手机竞争那么激烈,每个手机属于新能源汽车的时代就要来了4580812今天是1000天演讲写作挑战的第458天。今天,是很平常的一天。我也带着很平常的心情,静静地享受完了这一天的过程。鱼缸里的鱼儿在静静地漂着,风扇呼呼地转着。仿佛这个世界的所有都连成用时仅7个月!我国新能源汽车渗透率从5飙升至近15高质量能源内容,点击右上角加关注8月11日,中汽协发布的最新数据显示,7月新能源汽车继续成为亮点,当月产销继续刷新历史记录17月累计产销则已经超过国内历年全年的数量,渗透率也继续提不明白现在平板还有什么存在的意义锤子手机几年前就推出了一个TNT工作站。用过的或者知道的应该都知道这个东西好用。一个便携屏用手机投屏到便携屏幕完全都可以在任何方面碾压平板电脑。近骑华为小米也推出了类似于锤子手机的关于阿里女员工事件个人看法阿里女员工这个事件,随着涉事饭店的说的阿里女员工醉酒的基本实锤,涉事的住宿酒店的两个声明,人们关注的焦点资本的力量带偏了方向,本来是关心阿里这个领导性侵女员工而炮轰阿里文化体系,现女住客独自登记入住,陪同男性能补办房卡吗?我们暗访了三家酒店近日,阿里女员工自述遭领导及商家灌酒后猥亵一事引发社会关注。阿里女员工在自述中表示,通过查看酒店监控发现,领导王某成将醉酒后的她送入房间后,曾到酒店前台私开房卡,前并四次进入了她的WiFi无线连接APP远程管理翼联EDUP户外全景网络监控上市网络监控,让不法分子和非法行径无处遁形,有力地保障了居所和辖区的人身财产安全。4G网络监控可为户外场景提供可靠的无人值守,WiFi网络监控在商用场景则能发挥更大优势。翼联EDUPE