java 中接口和抽象父类有什么区别

接口和抽象父类的区别是:1、定义关键字不同;2、继承或实现的关键字不同;3、子类扩展的数量不同;4、属性访问控制符不同;5、方法控制符不同;6、方法实现不同;7、静态代码块使用不同。接口使用关键字interface 来定义。抽象类使用关键字abstract来定义。

java 中接口和抽象父类有什么区别-Worktile社区

1、定义关键字不同

接口使用关键字 interface 来定义。 抽象类使用关键字 abstract 来定义。类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类。而接口只是一个行为的规范或规定,微软的自定义接口总是后带able字段,证明其是表述一类类“我能做。。。”.抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中。

2、继承或实现的关键字不同

接口使用 implements 关键字定义其具体实现。 抽象类使用 extends 关键字实现继承。接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法。

3、子类扩展的数量不同

在 Java 语言中,一个类只能继承一个父类(单继承),但可以实现多个接口。接口的实现类可以有多个,而抽象类的子类,只能继承一个抽象类,继承多个抽象类就会报错。

4、属性访问控制符不同

接口中属性的访问控制符只能是 public,抽象类中的属性访问控制符无限制,可为任意控制符。

5、方法控制符不同

接口中方法的默认控制符是 public,并且不能定义为其他控制符,抽象类中的方法控制符无限制,其中抽象方法不能使用 private 修饰。

6、方法实现不同

接口中普通方法不能有具体的方法实现,在 JDK 8 之后 static 和 default 方法必须有方法实现,抽象类中普通方法可以有方法实现,抽象方法不能有方法实现。抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的。

7、静态代码块使用不同

接口中不能使用静态代码块,抽象类中可以使用静态代码块。

延伸阅读:

什么是父类?

在软件术语中,被继承的类一般称为“超类”,也有叫做父类。是继承中非常重要的概念,它和子类一起形象地描述了继承的层次关系。面向对象方法开发出的软件具有较强的可重用性,重用依存于超类设计,没有超类的对象系统不能物尽其用。超类设计的好与不好,首先看其内部重用率的高低,内部重用率高,必然外部重用率也高。

被继承的类一般称为“超类”或“父类”,继承的类称为“子类”。当子类继承超类时,不必写出全部的实例变量和方法,只需声明该类继承了的已定义的超类的实例变量和方法即可。超类、子类是继承中非常重要的概念,它们形象地描述了继承的层次关系。继承节省了定义新类的大量工作,可以方便地重用代码。例如,把汽车作为父类,当创建汽车的子类轿车时,品牌、价格、最高时速等属性会自动地被定义,调用刹车方法时会自动调用在汽车类中定义的刹车方法。但一个子类不必非要使用继承下来的属性和方法,一个子类可以选择覆盖已有的属性和方法,或添加新的属性和方法。

文章标题:java 中接口和抽象父类有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37936

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月13日 上午2:44
下一篇 2023年2月13日 上午2:46

相关推荐

  • Handler和Helper的区别是什么

    Handler和Helper的区别是定义不同。handle指向某个类别的资源对象,如文件句柄,进程ID都可以用handle来表达,在当动词讲时含义是处理和操作。而handler表示的是过程(函数),理解为功能处理器的含义,如常用的回调函数可以用handler来表示。 在计算机编程术语里handle作…

    2023年2月7日
    8200
  • 如何根据需求写测试用例

    步骤:确定测试目标;确定测试类型;确定测试覆盖范围;确定测试条件;设计测试用例;执行测试用例;评估测试结果。在设计测试用例之前,需要明确测试目标。测试目标一般是根据软件需求或者用户需求来确定的。 确定测试目标 在设计测试用例之前,需要明确测试目标。测试目标一般是根据软件需求或者用户需求来确定的。测试…

    2023年3月30日
    5900
  • 360考核是什么

    360度绩效评估法,又称为全方位考核法,360度考核法是常见的绩效考核方法之一,其特点是评价维度多元化(通常是4或4个以上),适用于对中层以上的人员进行考核。360考核是背对背的,考核目的是为了避免在考核中出现人为因素的影响。 一、360考核介绍 360度绩效评估法,又称为全方位考核法,360度考核…

    2022年11月15日
    74500
  • 制作路线图用什么软件

    可以用:1. Microsoft PowerPoint;2. Microsoft Visio;3. Lucidchart;4. Trello;5. Notion。Microsoft PowerPoint是一种常用的演示软件,也可以用于制作路线图。它的优点是易于使用,易于导出和共享,而且大多数人都熟悉…

    2023年2月28日
    53500
  • 软件项目管理系统功能模块有哪些

    功能模块有:一、项目进度管理;二、项目计划定制;三、项目成本控制;四、项目任务管理;五、项目数据分析。建立项目进度管理也被称为项目时间管理或项目的工期管理,是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理。 一、项目进度管理 建立项目进度管理也被称为项目时间管理或项目的工期管…

    2023年4月16日
    5000
  • 有什么爬虫工具

    爬虫工具有:一、八爪鱼;二、HTTrack;三、Scraper;四、OutWit Hub;五、ParseHub;六、Scrapinghub。八爪鱼是一款免费且功能强大的网站爬虫,用于从网站上提取你需要的几乎所有类型的数据。你可以使用八爪鱼来采集市面上几乎所有的网站。 一、八爪鱼 八爪鱼是一款免费且功…

    2023年5月28日
    400
  • 什么是科研项目管理

    科研项目管理是指课题从项目申请、立项论证、组织实施、检查评估、验收鉴定、成果申报、科技推广、档案入卷的全程管理。其目的是使科研项目实行制度化和科学化的管理,保证科研计划圆满完成,出成果、出人才、出效益,提高竞争力。 科研项目管理是指课题从项目申请、立项论证、组织实施、检查评估、验收鉴定、成果申报、科…

    2023年5月23日
    1800
  • Linux下编程有什么优势

    Linux下编程的优势有:1、开源;2、丰富的软件支持;3、多任务、多用户;4、相对较少的系统资源占用。开源是指Linux下任何人都是可以查看他的源代码的,而windows则不开源,所以你要经常的打补丁,修补漏洞之类的。其次Linux的安全性非常高,漏洞修补快速。 1、开源 提到linux的优点,首…

    2023年1月12日
    11100
  • Python与Java的区别与优劣

    区别与优劣在于:1、功能;2、生态系统;3、安全性。Python言语有许多优势,比如简单易用、扩展性强等等,可是在功能方面与Java相比仍是存在必定的距离,这一点不论是在Web开发,仍是在大数据开发范畴,都有必定的表现。 1、功能 Python言语有许多优势,比如简单易用、扩展性强等等,可是在功能方…

    2023年2月16日
    8400
  • 什么软件记工时最好

    记工时软件有:1、Toggl;2、RescueTime;3、 Clockify;4、Everhour。Toggl是一款功能强大的在线工时记录软件,能够方便地记录员工的时间和任务。该软件提供了简单易用的界面,使您可以快速开始记录时间。您可以在Toggl内创建项目和任务,然后开始计时。 1、Toggl …

    2023年2月27日
    5100

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部