终于想通了,栈和堆都是数据空间。一开始看到“把对象分配到堆上”,误以为是把对象方法的代码也放到堆上,堆上存放的应该只是这个方法的入口。不知对不对?到现在看的书和视频教程都没有把这个问题书清楚。
还没有想通子类继承的基类的成员,是不是就是把基本的成员也放到子类对象的空间上了,他们在内存中应该是呈现出什么样的形态?哪位大侠明白的请指教一下!
还没有想通子类继承的基类的成员,是不是就是把基本的成员也放到子类对象的空间上了,他们在内存中应该是呈现出什么样的形态?哪位大侠明白的请指教一下!
c#中通过new运算符向内存申请空间,比如A a=new a();此时虽然a没有实例化,但是在内存的某一个地方已经保存了改对象的信息,包括地址啊,类型等等,只不过就是没有实例值,你要说它存放在哪,那得看内存空间给它的分配了,还有,像那些成员,得看他们是按照什么方式存储了,这就涉及到数据结构的知识了,看他是线性存储呢还是非线性存储呢,如果是线性的就又分顺序存储和链式存储了,非线性的就是树和图结构了;
class A;
A就相当于这段内存空间的代号,这段内存空间用来存放A的对象的引用(对象在堆上的地址)。