今天安利一个网站,其实很多朋友应该早就知道了,我之前ARTS打卡,英文文档的 很多出处就来自于这个网站,叫 「Medium」

这个网站需要一定的技术去访问,但是为什么说他好呢,因为他号称全球最大的高质量创作型内容平台。很多知识小编都是在这里学习到的,也了解到国外程序员的一些习惯,其实和我们国内的也差不多,但是通过英文说出来,感觉还真有那么点不一样吧。

小编不才,今天尝试下翻译这里的好文,期待和你的交流。

标题:「Java Abstract Class What Is It Good For?」

文章来源:https://medium.com/swlh/java-abstract-class-what-is-it-good-for-880cf0117648

作者:Tome Henricksen

发布时间:2019-10-15

Java抽象类使许多Java开发人员望而却步。让我们了解一下它对我们有什么作用以及如何使用。

抽象主义:无原则者出售的未经惩罚的产品。Al Capp

我猜您听说过称为ADD或注意力缺陷障碍的疾病。在最近的巴黎之旅中,我儿子和我发现我们正遭受另一个名字相似的疾病的困扰。缺乏艺术障碍。

我们一起看看绘画和雕塑,发现它们毫无生气。我女儿在d’Orsay享受美食的地方,我们在寻找美食广场。在这里,我们享用了浓缩咖啡和鲜榨橙汁。

Java抽象类

Java具有不完整的抽象类。它们不能像常规类那样实现,必须对抽象类进行子类化才能使用。在这些类中,我们可以声明抽象方法。抽象类类似于Java中的接口。让我们更深入地进行比较。

比较

像接口一样,抽象类无法实例化。如果接口仅包含方法签名,则抽象类可以包含方法主体。抽象类可以声明非静态和final字段。

Java教程在使用抽象类时提供了一些很好的指导。原文如下(这里不进行翻译)When we “want to share code among several closely related classes” or “expect that classes that extend your abstract class have many common methods or fields”. Interfaces should be used when “expect that unrelated classes would implement your interface” or “want to specify the behavior of a particular data type”.

Java抽象类示例

像所有优秀的编码员一样,让我们着手编写一些代码。首先,我们可以看一个示例抽象类来入门。

package com.myitcareercoach;public abstract class Battery {int volt;int amps;void charge(int chargingTime) {// shared code}abstract boolean fullyCharged();abstract boolean isTooHot();}

这个Battery 抽象类有一个实现的方法和两个抽象方法。并且还定义了两个字段。

package com.myitcareercoach;public class ComputerBattery extends Battery {@Overrideboolean fullyCharged() {// TODO Add some code here!return false;}@Overrideboolean isTooHot() {// TODO Add some code here!return false;}}

ComputerBattery是一个具体的Java类。因为它继承了Battery类,所以它需要实现Battery定义的两种抽象方法

抽象和接口?

抽象类甚至可以实现接口。这似乎是将意大利面和土豆泥混合在一起,但是,这是合法的!(老外就是幽默啊,哈哈

public interface Student {public void setSchedule();public void registerForClass(String className);}

让我们采用Student 接口并将其混合在抽象类中

public abstract class ProbationaryStudent implements Student {@Overridepublic void setSchedule() {// implemented method}// not going to override registerForClass() method}

在我们的ProbationaryStudent中,我们不需要实现Student接口中的所有方法。因为该类被标记为抽象,所以这种情况是可能的。

Main?

您是否认为抽象方法中的main方法可以运行?

public abstract class DoesItRun {public static void main(String[] args) {System.out.println("Does it run?");}}

起先我也不认为会,但是实际上,它确实可以运行。我建议您自己尝试一下。如您所见,抽象类在Java中占有一席之地。与interface(接口)相似,但使用方式不同。

您在哪里使用过Java接口?

结尾

在这里,这篇翻译就结束了。这是篇Java的基础入门级文章,但是也体现出了Java abstract(抽象类)的重要性,以及简单的入门。

比如abstract(抽象类)是需要用继承的方式来的,并且定义的每个抽象方法在子类中都需要实现;interface(接口)是用来实现的,子类中并不需要实现全部的方法。

还有一个小彩蛋,在抽象类中,也是能执行main函数的哦。

这次,小编小试牛刀,后续会翻译一些我认为更好的文章出来,和大家一起进步,一起加油。喜欢的话,给点鼓励噢~

推荐阅读:

Leetcode算法【34在排序数组中查找元素】

写了很久,这是一份适合普通大众/科班/非科班的『学习路线』

长久养成的打卡习惯可千万不能丢呀

Java 中的 final、finally、finalize 有什么不同?

求求你别再“从入门到放弃了”,贵在坚持

「奔跑吧攻城狮」感谢大家的关注,fighting

【Medium翻译】Java抽象类有什么用?相关推荐

  1. java抽象类和模板模式_测试抽象类和模板方法模式

    java抽象类和模板模式 摘自Wikipedia,"模板方法定义了算法的程序框架. 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法." 通常,此模式由两 ...

  2. java抽象类_Java抽象类

    java抽象类 Abstract class in Java is similar to interface except that it can contain default method imp ...

  3. Java接口和Java抽象类

    Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方,才是它们的最佳位置呢?把它们比较一下,你就可以发现了. 1.Java接口和Java抽象类最大的一个区别,就在于Java ...

  4. Java接口和Java抽象类的认识

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  5. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

  6. IEnumeratorTItem和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了...

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

  7. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  8. java定义一个door的类_再探Java抽象类与接口的设计理念差异

    原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是 ...

  9. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...

    本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...

最新文章

  1. [恩难到了]陨石的秘密
  2. 06.Java虚拟机问题
  3. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
  4. CoreData多线程
  5. mysql 导出表数据到另一张表_yz-Mysql数据库中一个表中的数据导出来到另外一个数据库的表格...
  6. 阿里员工都在用的知识管理工具,究竟有何特别?
  7. 日本显示屏巨头JDI不敌业务压力,宣布接受中方注资...
  8. 大容量存储方案_助力卫星发射!威固提供自主固盘,满足载荷数据大容量存储能力...
  9. sql azure 语法_使用Azure门户监视安装了SQL Server的Azure计算机
  10. 融合连接-玄武科技助力“智慧政务”新时代 —— 玄武科技 即信产品市场总监 朱敏...
  11. 莫代尔是什么?它有哪些优缺点?
  12. python怎么读音发音英语-python style是什么意思
  13. Tensor flow 实战Google深度学习框架 笔记摘要Pfour
  14. Bettertouchtool for Mac(鼠标增强软件)
  15. 实现 ASP.NET Core WebApi 的版本化
  16. 干货,值得收藏!Python 操作 Excel 报表自动化指南!
  17. ipv6被拒的解决方法
  18. postgresql 数据库表隐藏列 oid、tableoid、ctid、xmin、xmax、cmin、cmax
  19. 【opencv】19.图像边缘检测算子数学原理、像素一二阶导数的意义
  20. 织梦CMS建站入门学习(一)

热门文章

  1. cool edit pro生成报警声
  2. 深度学习基础之池化层
  3. 卷积层、池化层等作用
  4. 网络时代 视频应用为王
  5. android基础复习笔记——1.http的原理和工作机制
  6. 七夕活动_一个移动鼠标播放告白气球的Python程序(2022年8月可用)
  7. VS2015安装Qt VS Tools
  8. js浮动运动函数html,JS+CSS动态绘制元素曲线运动轨迹(数学函数)
  9. tp5 批量更新多条记录_Thinkphp怎么批量更新数据
  10. 摄影视觉运用于网页设计