C# 构造函数 和 析构函数 的关系是什么? 继承是不是和派生是一个意思?
3个回答
展开全部
构造函数与析构函数是相反的两个函数.
通俗点的说法: 这2个函数是对头.
构造函数是一开始便执行的函数,
而析构函数是当对象过时才执行的函数.
构造函数是 创建对象实例化对象时执行的一个函数.例如 new 时..
而析构函数是当你不需要这个对象时执行的一个函数.释放资源所用.
一般用于非托管资源,C#程序员对于 析构函数是比较陌生的.以前的许多软件经常提示 内存不足,大部分都是因为程序员忘了去释放一些已过时资源.
C#十分人性化的自动释放托管资源.
非托管资源例如: 数据库连接对象.sqlconnection.当使用这种对象时,我们必定会有关闭,释放连接的代码块.
派生和继承其实就是一个说法.
父派生了子.
而子继承了父.
当你把父当成描述主体时, 就应该用派生.例如 父类A 派生了子类 A1
当你把子当成描述主题时, 就应该用继承,例如 子类A1,继承了父类A
通俗点的说法: 这2个函数是对头.
构造函数是一开始便执行的函数,
而析构函数是当对象过时才执行的函数.
构造函数是 创建对象实例化对象时执行的一个函数.例如 new 时..
而析构函数是当你不需要这个对象时执行的一个函数.释放资源所用.
一般用于非托管资源,C#程序员对于 析构函数是比较陌生的.以前的许多软件经常提示 内存不足,大部分都是因为程序员忘了去释放一些已过时资源.
C#十分人性化的自动释放托管资源.
非托管资源例如: 数据库连接对象.sqlconnection.当使用这种对象时,我们必定会有关闭,释放连接的代码块.
派生和继承其实就是一个说法.
父派生了子.
而子继承了父.
当你把父当成描述主体时, 就应该用派生.例如 父类A 派生了子类 A1
当你把子当成描述主题时, 就应该用继承,例如 子类A1,继承了父类A
展开全部
一个对象创建时,自动调用的就是它的构造函数,一般发生在new操作的同时。
而这个对象生命终结被垃圾回收释放空间时,就会自动调用它的析构函数。C++中,此操作一般发生在delete时;而C#由于所有的delete操作为系统所掌控,什么时候调用析构函数,我们并不能确知,但必定发生在此对象已经无效以后。
如果对象创建时,需要额外的初始化,或者对象销毁时,需要额外的清理,就需要构造和析构函数,二者是一对相反的操作。
类A作为原型,类B在A的基础上具体化(举个例子就是"人"类是"生物"类的具体化),我们就称B继承了A,或者A派生了B(就是"人"类继承了"生物"类,或者"生物"类派生出"人"类),是指同一件事,只是语法上的主谓不同。
而这个对象生命终结被垃圾回收释放空间时,就会自动调用它的析构函数。C++中,此操作一般发生在delete时;而C#由于所有的delete操作为系统所掌控,什么时候调用析构函数,我们并不能确知,但必定发生在此对象已经无效以后。
如果对象创建时,需要额外的初始化,或者对象销毁时,需要额外的清理,就需要构造和析构函数,二者是一对相反的操作。
类A作为原型,类B在A的基础上具体化(举个例子就是"人"类是"生物"类的具体化),我们就称B继承了A,或者A派生了B(就是"人"类继承了"生物"类,或者"生物"类派生出"人"类),是指同一件事,只是语法上的主谓不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
构造自动生成,也可重载;析构自动生成,都是必须的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询