林和环保网

C#中的虚方法与抽象方法有什么区别?

林和环保网 0

C#中的虚方法与抽象方法有什么区别?

抽象方法

使用abstract关键字 public abstract bool Withdraw(…);

抽象方法是必须被派生类覆写的方法。

抽象方法是可以看成是没有实现体的虚方法

如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法

虚方法

使用virtual关键字 public virtual bool Withdraw(…);

调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。

虚方法可以有实现体

若一个实例方法的声明中含有 virtual 修饰符,则称该方法为虚拟方法;一个虚拟方法的实现可以由派生类取代。取代所继承的虚拟方法的实现的过程称为重写该方法;在一个虚拟方法调用中,该调用所涉及的那个实例的运行时类型确定了要被调用的究竟是该方法的哪一个实现。

虚函数的限制:

1.虚函数仅适用于有继承关系的类对象, 所以只有类的成员函数才能说明为虚函数.

2.静态成员函数不能是虚函数.

3.内联函数不能是虚函数.

4构造函数不能是虚函数.

5.析构函数可以是虚函数.

简单点说,抽象方法是需要子类去实现的.虚方法,是已经实现了,子类可以去覆盖,也可以不覆盖取决于需求.

public abstract class AUser

{

public abstract UserInfo getUser();

public virtual void Save(UserInfo info)

{

//实现保存的功能

}

}

public class UserSqlServer:AUser

{

public override UserInfo getUser()

{

//一定要实现的,抽象类只给了抽象方法

}

//假设抽象类针对SqlServer实现的功能,这里不需要实现了.

}

public class UserOracle:AUser

{

public override UserInfo getUser()

{

//一定要实现的,抽象类只给了抽象方法

}

//假设抽象类针对Oracle实现的功能

public override void Save(UserInfo info)

{

//覆盖抽象类中的Save方法

}

}

以上只是例子,真实并不这么做.

注册公司地址问题,还没选好地址,可以用什么方法先注册公司?

一、情况分析

公司注册属于企业经营,注册地址原则上应该为非居住房。

生产型企业需要厂房,贸易、服务类可以用商铺、写字楼、商住楼。

二、法律规定

《企业法人登记处所细则条例》

第九条

(1)自建房作为住所但尚未取得《房屋所有权证》的,可提交建设单位出具的施工许可证、建设许可证复印件作为住所使用证明。

(2)原属区县房屋管理局直管公房作为住所,但因房屋管理局机构调整无法再由其出具权属证明的,可由区县政府明确的部门出具产权证明。

(3)使用国有企业尚未取得《房屋所有权证》的房产作为住所,可由主管该单位的国有资产管理部门或其上级单位出具产权证明。

(4)使用科技园区(开发区)内尚未取得《房屋所有权证》的房产作为住所,由所在区县政府或其授权的部门出具房屋权属证明文件。

(5)房屋提供者系经工商行政管理机关核准的具有出租房屋经营项目的,即经营范围含有“出租商业用房”、“出租办公用房”、“出租商业设施”等项目的,由该企业提交加盖公章的营业执照复印件及房屋产权证明复印件作为住所使用证明。

(6)使用宾馆、饭店(酒店)作为住所的,提交加盖公章的宾馆、饭店(酒店)的营业执照复印件作为住所(经营场所)使用证明。

(7)使用人防工程作为住所的,提交人防行政主管部门审查同意的《使用人防工程申报表》以及消防部门同意使用的证明文件的复印件。

(8)使用中央各直属机构的房屋作为住所的,由中央各直属机构的房屋管理部门出具房屋使用证明。

(9)使用中、小学校的非教学用房作为住所的,由所在区县教委出具同意经营的意见。

(10)经商务局确认申请登记为社区便民菜店的,由所在街道办事处或社区综合服务中心出具同意使用该场所作为住所从事经营的证明。

(11)申请从事报刊零售亭经营的,按照《关于加强全市报刊零售亭建设的意见》的规定,由管委出具住所证明。

(12)在已经登记注册的商品交易市场内设立企业或个体工商户,住所证明由市场服务管理机构出具,并提交加盖该市场服务管理机构公章的营业执照复印件。