java基础笔记04浅析抽象类的作用

抽象类是一种模板模式。抽象类为所有子类提供一个通用的模板,子类可以在这个通用的模板上进行扩展。

简单来说,就是继承的子类必须实现父类的属性和方法。抽象方法必须被子类实现。

如下图所例

抽象类可以包含属性,方法,构造方法。但是构造方法不能被用来new实例,只能用来被子类调用。

一般来说,抽象类限制比一般类大,一般类比抽象类更加灵活。当是在现实中很多父类中的方法是没有必要的,因为各个子类中的方法和父类必定不同,所以没有必要在父类里进行定义。

比如我们初中学习科学,到了高中科学被分为物理、化学、生物。我们不需要再去统一了解怎么学习科学这门知识,我们只需要知道物理、生物、化学每一门是怎么学的,而且每门的学习方法是我们必须要知道的,如同父类的抽象方法在子类中必须被实现。

当然,在这个例子中使用抽象类不是必须的,如果有人就是想知道科学的学习方法呢。我们在父类中加入这样一部分属性和方法也未尝不可。这时候我们可以用另一个例子,比如我们创建一个天气类,天气分为晴,雨,多云,台风,降雪等等,每个天气所造成的影响都不同。但我们怎么定义天气这个父类本身所造成的影响呢?太宽泛了,可能我们要去写几十上百条代码,最后的结果可能也并未有什么不同。但我们会很关心各种天气所带来的影响,如果一个地方的天气预报连这点实质性的东西都没有,那这个天气预报也不会有人看了。


另外,如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,205评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,228评论 0 5
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,705评论 0 11
  • 柳叶嫰黄春早报,水容渐绿更潭深。 三天不见披新貌,草木勃勃尽色淫。
    徐一村阅读 247评论 3 8