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

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

人民财评加强政策协调配合形成共促高质量发展合力来源人民网观点频道原创稿截至11月底,两批共7399亿元金融工具支持的2700多个项目已全部开工建设1至11月份,我国规模以上高技术制造业增加值同比增长8。0截至11月10日,全国小米平板6系列曝光!Pro机型或将上2。8K屏幕,搭载骁龙8Gen1不知道大家还记不记得小米是有推出平板系列的?确实最近发布的一代平板都已经是2021年8月份时候发布的了。就在小编以为小米已经放弃平板这条产品线的时候,在近期就有消息透露出小米平板6三星GalaxyNote系列兴亡史当三星在2010年推出GalaxyS系列的时候,走的是和一众安卓手机厂商一样的路线,也是选择将屏幕大小定在了一个比较微妙的尺寸上4英寸。这个尺寸既比iPhone大,又没有大很多,可华为儿童手表5X系列开启预售支持离线定位,首发1548元IT之家12月20日消息,在华为冬季全场景新品发布会上,华为发布了儿童手表5X5XPro,支持双屏双摄,自由翻转。支持高清双摄可翻转可摘取。华为儿童手表5X系列拥有幻夜黑极光紫星际AMD三款锐龙7000非X系列处理器详细规格曝光,TDP均为65W外媒VideoCardz目前已详细曝光了AMD锐龙7000非X系列处理器的规格参数,包括锐龙97900锐龙77700锐龙57600这三款新品。这些处理器的主要特点就是其TDP限制在百达翡卡古典系列6119R001今天店里到了一支百达翡丽古典系列的6119R001腕表店内实物拍摄其实本人的喜好是更偏向于运动款的,但是看到这块6119的时候我真的被惊艳到了。我对它的第一印象是精致优雅高贵简约又联想小新预热2023年新品数字ProAir三大系列5款机型IT之家12月20日消息,联想官方今日开始为即将到来的2023款新机进行预热。从联想小新给出的预热海报来看,小新数字系列Pro系列Air系列将推出5款新机,两款旗舰,包括小新14小年末47K新机推荐,优点都给你标记了!按需选择不怕掉坑年底了,又到了该换机的时候了,今年年底确实有不少好手机值得入手,而且每一款上市的产品都有自己优势,如果你打算年底换机的话,不妨来看看本文推荐的这几款,根据自己的需求按需购入即可。1AI创作浪潮汹涌,布局两年多的昆仑万维站上风口?如何用AIGC支点,撬动元宇宙生态?作者孙佳编辑丨高岩来源野马财经被AI的绘画技术整破防了AI会取代人类绘画吗这些近期挂在微博热搜榜上的话题,揭示了AI绘画的火爆程度。无论是自拍合如果伊隆马斯克卸任Twitter首席执行官,狗狗币会下跌吗?特斯拉首席执行官兼Twitter所有者埃隆马斯克在社交媒体平台上进行了一项民意调查,询问人们他是否应该辞去这家科技公司的负责人一职。作为狗狗币(DOGE)的支持者,这种流行的代币随小米11将更新推送MIUI14,剃刀终于递给老机主了社会学上有一个著名理论名为奥卡姆剃刀,阐述是如无必要,毋增实体,即删繁就简。MIUI14正式以这个理论为核心,推出了本次的称为剃刀计划的行动。不只大家发现没有,当年玩刷机的时候,各
李孝轩委员建议适度扩大今年专升本和专业学位研究生招生规模近年来,国家持续出台一系列促进高校毕业生就业的政策措施。去年5月的关于进一步做好高校毕业生等青年就业创业工作的通知(国办发202213号)明确提出,对吸纳高校毕业生的中小微企业按规委托他人代炒股稳赚不赔?亏损后女子起诉赔偿6万损失款,法院判了郭某委托彭某代为炒股,约定本金200000元。彭某承诺盈利后双方平分,本金风险由自己承担。期间,股市先涨后跌,郭某总投入195000元,盈利20000元,总亏损59128元。郭某因偷偷潜伏重点小学家长群一年后,我终于明白优秀孩子的三个特质!眼看着孩子一天天的长大,身为妈妈,我开始有些着急了都说孩子的教育要趁早,我是不是该让孩子学些什么了?学什么合适呢?认字?数数?英语?还是什么?焦虑之下,我开始四处打听,带着孩子去一夜读丨你的爱好,暴露了你的生活品质按钮收听朗读音频文渡兰君清人张潮曾在幽梦影中写道花不可以无蝶,山不可以无泉,石不可以无苔,水不可以无藻,人不可以无癖。人生在世,最有益的事情,莫过于找到真心喜欢的爱好。只有柴米油盐流年之约岁月匆匆,流年如梭。时间的轮回让我们的生命中充满了记忆和情感。那些美好的时光,让我们流连忘返那些不如意的经历,让我们铭记于心。我们都在岁月中留下了自己的足迹,用自己的力量,书写了生我想有个灵魂伴侣在这个浮躁的社会,平淡如水的生活中,每个人的生活都毫无波澜。你是不是也有一种厌倦感,厌倦了这个平淡如水的生活。心心心心确实是,有一个精神寄托真的太重要了,太重要了,有个心爱的人,灵如果不懂得尊重人,我给你20条建议,人这一生是一场漫长的修行发自内心的尊重,才是人性深处的光辉。1hr多年前,我在读大学的时候,在校门口一家餐厅里,兼职做服务员。人来人往的餐厅,见识了太多人情冷暖。一天,正值附近的中小学开学,店里异常忙碌。印尼学者稳定增长的中国经济,将为东盟崛起带来机遇国际货币基金组织(IMF)世界银行经合组织等多家国际组织和投资机构纷纷上调对今年中国经济增长预期。印尼总统大学国际关系学系助理教授赖剑文在中央广播电视总台南海之声独家撰文表示,这些为何说宁波经济超越南京只是时间问题宁波南京浙江江苏宁波作为浙江省的副省级城市位于东海之滨,是浙江省乃至全国一直以来的经济强市。2022年,宁波全市GDP达1。57万亿元,在中国大陆各大城市中排在第12位。同样作为六你说的躺平是什么意思年轻人奋斗的是大多数,想躺平更多是调侃这句话前半部分其实有理。年轻人有冲劲有闯劲是天性,即使环境不好,天性只会被压制而不会消失。况且现在年轻人的压力确实大,但毕竟我们还在发展的就阶只有经历过才会明白,人生无常,就是要让自己快乐作者子墨不知道什么时候,花园里的玉兰已经吐出了花蕊,春来何处,每个人都在寻找,更不知道是谁摇橹声响,在春天里划出一条花径。一道道春光洒落,接着片片花色,在心里溅起涟漪,春花香影,草