讨论有关面向对象中继承的问题
讨论:
public class test1
{
private int a;
public int b;
public test1()
{
a=1;
b=2;
}
}
public class test2:test1
{
public test2()
{
b=3
}
}
当你
test1 mytest1=new test1();
test2 mytest2=new test2();
问,当系统为test1和test2实例化的时候
这两个对象所分配的内存空间大小相同么?
有人做c++么?
改成c++代码,用sizeof试试。c#里面在安全模式下不能使用sizeof函数。
请热心人给个结果出来
------解决方案--------------------那做测试看看
------解决方案--------------------不一样
------解决方案--------------------明显不一样,成员数量都不一样……
------解决方案--------------------不一样,你在test2中可以调用base,test1里没有
个人观点,哈哈
------解决方案--------------------个人认为不一样
理由是实例化test2的时候还需要执行test1的构造方法
------解决方案--------------------个人认为,因为class2中没有a,所以比一个class1占的内存还少~~~
------解决方案--------------------学习一下哈哈
------解决方案--------------------up
------解决方案--------------------显然不一样。
而且c#和c++的实现机制是完全不一样的
------解决方案--------------------其实关键是如何理解private的继承
子类是继承父类private成员的
只是子类不能使用父类的private成员而已
------解决方案--------------------up