A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 墨蹄 中级黑马   /  2014-3-27 19:14  /  951 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 墨蹄 于 2014-4-9 12:08 编辑

在实际项目中,该怎么区分该使用哪种方法

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

正序浏览
虚方法是父类中声明可以被改写的方法,本身有方法体。子类中可以被改写也可以不被改写。
抽象方法是父类中声明必须被改写的方法,本身没有方法体,子类中除本身亦是抽象类以外必须被改写。
主要区别是看父类是否需要实例化。如果需要选择虚方法,如果不需要实例化选择抽象方法好一些。
回复 使用道具 举报
抽象方法是只能在抽象类中声明,且只有定义、没有实际方法体的函数,必须在子类中重写;
虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。
回复 使用道具 举报
抽象方法没有实现,只有定义,必须在其子类中override实现。
public abstract void AbstractFunction();
子类复写:
public override void AbstractFunction()
{
   return;
}
虚方法有实现,当子类不实现的时候,则使用父类的虚方法逻辑,否则使用子类复写的逻辑。
public virtual string VirtualFunction()
{
   return "test";   
}
另:抽象方法只能在抽象类中声明,虚方法则不必。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马