zoukankan      html  css  js  c++  java
  • java 抽象类为什么不能被实例化?

    我把CSDN论坛里面的一个帖子内容list到下面,自己看着理解,东家一言,西家一语,杂合起来,基本上也就理解了java中的抽象类为什么不能被实例化了。

    因篇幅有限,只能罗列部分留言

    以下内容不分先后顺序

    =====================================

    抽象类只在分配了在栈中的引用,没有分配堆中的内存。程序都有一个代码段,再内存中需要占据一定的内存,而抽象类没有具体的实现方法,无法具体的给它分配内存空间,所以为了安全,不JAVA不允许抽象类,接口直接实例化

    =====================================

    哲学角度,抽象基类往往在逻辑上无法实体化,比如说让别人去买水果,不说买什么,就说买水果,显然是买不到一种叫“水果”的东西的。

    =====================================

    主要是两点,一个是抽象类是一个不完整的类,一个是内存分配问题。
    实际上抽象类更多提供的是一个框架的功能,参数比接口更详细些。

    =====================================

    本末倒置了
    抽不抽象是设计时该考虑的问题,不能问为什么抽象类不能实例化
    因为在设计时,考虑到某些类所具备的信息不足以实例化一个对象,才设计成抽象的
    所以问题反过来就是答案:
    因为这个类不能够被实例化,所以才设计成抽象的,至于为什么这么做,问你的设计师吧,他也许会给出你答案
    不过设计师的脾气都不太好,给你一棒子叫你照着做就行了也是有可能的

    =====================================

    抽象类,就像是向别人声明:我能赚大钱
    实例化就是具体的行动
    因为抽象类只是个声明,而没有计划,也不知道怎么赚钱
    所以我们是不会投资给钱(内存)他的,就算投资他他也不能做任何事
    为了保存大家的利益,没有具休的赚钱计划不能让他执行

    =====================================

    不仅JAVA,其他任何语言都一样~这是由语言的设计决定了的,就是纯粹为了继承而存在

    =====================================

    抽象这个词已经很好的说明这一点了,我的理解是:对事物进行抽象通常是基于一定的经验,从众多的经验中总结出规律,浓缩的结果可以在以后多次获利,但是经验并不能真正帮你工作,你还是需要融入实践应用!

    =====================================

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

    =====================================

    面向对象思想是对现实社会的模拟(抽象),从哲学上讲进化不完全的物种是不能生存的!

    =====================================

     这是从设计思想层面的东西,为什么要纠结这个问题呢?
    说白一点,这就是java的使用规范.

    =====================================

    如果你是一个老板,你问一个应聘的人员:你会什么?他给你一个“我不知道”的答案,你会怎么做!!
    这个例子视乎能更现实的说明你的这个问题。面向对象语言是从现实中抽象出来的,它该符合正常的逻辑秩序。

    =====================================

     Java中是允许不含抽象方法的抽象类的,我认为应该是出于安全的考虑,编译器强制规定不允许抽象类产生对象!

    =====================================

    java里这么规定的,原因我个人认为是抽象类里有未实现的抽象方法,实例化时不能正常分配内存吧,而且调用这个方法时不是要出异常吗

    参考

    https://bbs.csdn.net/topics/330265812

  • 相关阅读:
    蓝桥题库基础练习1-10
    HTML5(八)Web Workers
    对自动化测试工具的实战运用
    对自动化测试工具的简要认识
    HTML5(七)Web 存储
    蓝桥杯javaB组入坑
    Google Play内购测试
    【python】python中的json、字典dict
    【python】python之tuple元组
    性能测试基础知识
  • 原文地址:https://www.cnblogs.com/baxianhua/p/10876139.html
Copyright © 2011-2022 走看看