抽象类能否实例化思考

       在软件业,抽象能力的重要性怎么说都不为过。程序员经常需要面对、处理异常复杂的业务和逻辑,如果不具备强大的抽象能力,无法把具体变成概念,进而驾驭概念进行思考,就很难降低问题的复杂度。

   我们经常说,万事万物皆对象。在面向对象的概念中,所有的对象都是通过类来描述的,但是反过来并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

   终于说到主题了,抽象类可不可以实例化呢?答案肯定是不可以。

    比较正式的解释是:这是由语言的设计决定的,就是纯粹为了继承而存在的。

     有人认为是抽象类里有未实现的抽象方法,实例化时不能正常分配内存,而且调用这个方法也会报异常。

   学过汇编的可能知道,程序都有一个代码段,在内存中需要占据一定的内存,而抽象类没有具体的实现方法,无法具体的给它分配内存空间,所以为了安全,java不允许抽象类直接实例化。

  其实抽不抽象是设计时就已经考虑好的问题,因为在设计时,考虑到某些类所具备的信息不足以实例化一个对象,才设计成抽象的。

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

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,382评论 11 349
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 学习 #在线课程# 完成了Origin of the Elements, the Solar System and...
    清欢暮霭阅读 137评论 0 1
  • 我孤独游翔在云端 作者:千年不死等花开 在云端 我孤独游翔,披满羽繁星 在北海和一只巨翅鲲鹏论道 潜入梦中和庄周的...
    千年不死等花开阅读 456评论 33 30