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

[复制链接]
查看11 | 回复5 | 2017-11-27 01:43:57 | 显示全部楼层 |阅读模式
C#中的抽象方法和虚方法在功能上有什么区别呢,是不是能用虚方法代替抽象方法或者用抽象方法代替虚方法,抽象方法和虚方法都可以重写和覆盖吗?重写和覆盖有什么区别?分别有什么作用?

回复

使用道具 举报

千问 | 2017-11-27 01:43:57 | 显示全部楼层
抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。重写的子类虚函数就是被覆盖了。...
回复

使用道具 举报

千问 | 2017-11-27 01:43:57 | 显示全部楼层
抽象方法就是纯虚方法:只有定义,没有实现。private virtual foo() = 0;有抽象方法的类就是抽象类。 抽象类不能用来定义对象,必须要作为其他类的基类,并在派生类中重载抽象方法。...
回复

使用道具 举报

千问 | 2017-11-27 01:43:57 | 显示全部楼层
我来也。C#父类子类继承多态虚方法抽象方法class父类{虚方法}class子类:父类{可重载虚方法}多态,如:1:静态多态,重载,方法参数类型或个数不同,方法名相同。如:publicvoidF(inta){}和publicvoidF(){}//这两个方法构成重载2:动态多态,虚拟如:c...
回复

使用道具 举报

千问 | 2017-11-27 01:43:57 | 显示全部楼层
FantasyChump - 总监 八级 正解!顶一个。 其实java当中的方法都是虚方法,所以在java中重写方法的时候不用override. ============================我也来顶一个,回答简单明了。...
回复

使用道具 举报

千问 | 2017-11-27 01:43:57 | 显示全部楼层
FantasyChump - 总监 八级 正解!顶一个。其实java当中的方法都是虚方法,所以在java中重写方法的时候不用override....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行