导航

风哥语录--抽象类不可实例化却拥有成员的问题

Posted on 2011-03-29 00:23  beeone  阅读(1150)  评论(0编辑  收藏  举报
问题:抽象类虽然不可被实例化,但并不表示它就没有任何实例成员。抽象类型同样可以拥有大量的实例成员,而这些实例成员往往也需要初始化。如何理解
风之痕(
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
省时省事啊