zoukankan      html  css  js  c++  java
  • 风哥语录抽象类不可实例化却拥有成员的问题

    问题:抽象类虽然不可被实例化,但并不表示它就没有任何实例成员。抽象类型同样可以拥有大量的实例成员,而这些实例成员往往也需要初始化。如何理解
    风之痕(
    499905171) 15:51:42
    A a
    =new A();
    风之痕(
    499905171) 15:51:48
    这是一个实例化的过程
    风之痕(
    499905171) 15:52:26
    首先 在栈上 建立 a 指向一个在堆上新建立的空间上
    风之痕(
    499905171) 15:52:39
    这是一个完整的实例化过程
    风之痕(
    499905171) 16:11:38
    初始化跟 实例化不同
    初始化,有很多情况,如函数的初始化,类里成员的初始化等,即给一些变量赋予初始值,那些变量已经存在,只是赋值,不像实例化那样构造一个实例的时候需要在内存中开辟空间。
    风之痕(
    499905171) 16:11:53
    int a=1;就是个初始化过程
    风之痕(
    499905171) 16:15:15
    首先抽象类 是特殊类存在 每个类 其实在没实例化之前都在堆中 有空间 但是抽象类是在栈中产生的
    风之痕(
    499905171) 16:15:30
    也就是说 抽象类实例化 需要一个完整堆空间
    风之痕(
    499905171) 16:16:12
    继承是什么 继承的是这个父类在 栈空间的地址 继承后后新生的地址会在堆中重新建立空间
    风之痕(
    499905171) 16:20:43
    抽象类 从出生就在栈上活着 如果想实例化 就不必须要有个有堆得空间
    风之痕(
    499905171) 16:20:51
    实例化 其实就是个堆栈的操
    {C#问题学生}(
    279922101) 16:20:53
    - -、风哥 你又接电话了?
    风之痕(
    499905171) 16:21:12
    没啊
    风之痕(
    499905171) 16:21:16
    我看没人说话 啊
    风之痕(
    499905171) 16:21:24
    这个问题问疯子去
    风之痕(
    499905171) 16:21:32
    有问题找疯子 地球人都知道
    风之痕(
    499905171) 16:22:37
    堆栈学习的哪本书 都是一块讲的 你们大学必须学过啊 计算机专业中 计算机原理为必修课 现在课程 计算机原理把编译原理 也融入了
    风之痕(
    499905171) 16:23:40
    你继承 其实在内存中的存在 就是把栈中 地址 复制一份 但是正常类都是生存在堆中的
    风之痕(
    499905171) 16:24:02
    也就是 把抽象类的栈地址复制了 但是这个类是正常了 他会在堆中产生
    风之痕(
    499905171) 16:24:09
    也就说 继承 堆栈都有了
    风之痕(
    499905171) 16:25:28
    其实 继承 实例化 还有引用 所有计算机的内存操作 都跑不出去 堆栈区 全局区
    风之痕(
    499905171) 16:25:47
    错了 抽象只有栈空间 没有堆空间
    风之痕(
    499905171) 16:26:41
    但是你继承的 是把抽象类的空间复制一次 给继承类 而成形会在堆中开辟个空间 也就说哦 继承的类在堆栈中 其实是完好的
    风之痕(
    499905171) 16:27:18
    首先 要明白抽象类 跟普通类 在内存是不同
    风之痕(
    499905171) 16:27:35
    普通类可以这么理解 但是抽象类却不同
    风之痕(
    499905171) 16:27:55
    抽象类 天生就是生在栈中 他不会堆的空间
    风之痕(
    499905171) 16:32:02
    你们都不学计算机原理吗?
    风之痕(
    499905171) 16:32:19
    那我举例子吧 要是公司里面 出现这样的 我早骂了
    风之痕(
    499905171) 16:34:25
    继承是什么 比如 你现在被关在小黑屋里面 你现在有着一堆得 神一样的思路 但是没人去帮你执行 你想找个继承人去帮你实现 这样 你的继承首先不能跟你关在一起 但是要从你这里 把知识复制过去 而且你给他下个诅咒 如果他不执行 他也会被关进小黑屋中
    风之痕(
    499905171) 16:34:57
    抽象类 继承 就是这么回事
    风之痕(
    499905171) 16:35:25
    而普通的继承 没有诅咒 是师傅传徒弟 大家都在外面 抽象类特殊 师傅在小黑屋中
    风之痕(
    499905171) 16:37:56
    师傅有想法 但是 抽象类中却可以有非抽象方法的存在啊 这个就是师傅 突然间 顿悟 然后 发功力 在外面又变个自己出来 去执行 自己的那种自己认为可以实现的方法 其实师傅是自私的 他把很多的思路 自己认为实现不了都交给徒弟了 自己可以实现的都交给自己的复制人了
    风之痕(
    499905171) 16:38:44
    抽象类是做爹的 接口是做妈的 做爹的有权利决定 教儿子还是自己做 但是做妈 只能在小黑屋中 等着儿子去帮自己实现自己的想法
    风之痕(
    499905171) 16:39:11
    一个人类只能有一个爹 但是却可以多个妈
    风之痕(
    499905171) 16:40:07
    因为在编程中 抽象类确实很特殊 对于没搞懂堆栈的只能去比喻 让你们理解了
    风之痕(
    499905171) 16:40:28
    要是搞懂堆栈的 我上面说的堆栈的运行 原理 一次 就明白了
    风之痕(
    499905171) 16:41:14
    汗 其实我不想比喻 大家都是搞程序的 计算机原理 是基础中基础
    风之痕(
    499905171) 16:44:19
    程序需要接口 首先 接口是做妈 他在栈中会有地址 这个地址其实并不消耗什么 他想教几个徒弟都行 直接继承就可以了
    风之痕(
    499905171) 16:44:38
    首先在资源运作上 接口传输 就比 直接类要快速
    风之痕(
    499905171) 16:44:54
    在一 一个定义的方法 可以让多个类去继承
    风之痕(
    499905171) 16:44:59
    省时省事啊
  • 相关阅读:
    记一次生产环境Nginx间歇性502的事故分析过程
    如何为nginx配置https(免费证书)
    nginx + tomcat配置https的两种方法
    证书之间的转换(crt pem key)
    FreeSwitch: ESL Inbound内联模式下如何设置单腿变量
    CompletableFuture笔记
    java中整数常量池(-128~127)上限如何调整?
    redis过期机制及注意事项
    一次完整的通话过程SIP报文分析
    SIPp测试freeswitch用户注册
  • 原文地址:https://www.cnblogs.com/beeone/p/1998288.html
Copyright © 2011-2022 走看看