抽象类和接口、抽象方法和虚方法的比较

抽象类和接口都不能被实例化,这是他们最大的共同点,但他们还有很大的不同,简单说明如下:

·抽象类中只有抽象成员不包含实现部分,接口所有成员都不包含实现部分;
·抽象类的派生类只需实现其抽象成员,接口的派生类要实现其所有成员;

可以把抽象类看作是接口和普通类的混合体,他的抽象成员类似接口成员,他的非抽象成员和普通类成员一样。

抽象方法和虚方法也非常容易把人弄糊涂,下边也说下他们的一些区别:

·抽象方法使用关键字abstract,虚方法使用关键字virtual;
·抽象方法必须在抽象类中,虚方法不用;
·抽象方法没有实现体,虚方法有实现体;
·抽象方法必须在派生类中override,派生类可以选择是否override虚方法;

评论: 0 | 引用: 0 | 查看次数: 3304
发表评论
登录后再发表评论!