您的位置:首页 > 其它

接口 抽象类 应用不同与区别,抽象方法 虚方法应用不同

2013-07-04 08:23 417 查看
接口 抽象类 应用不同与区别

应用不同:

1、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现
2、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的方法实现,不确定的方法抽象,由实现类部分实现,部分重写(不变就不重写啦)
3、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用写子类啦)

抽象方法 虚方法应用不同:

用我自己的话说,
抽象方法用abstract修饰
不允许有方法体
必须被子类override
只能在抽象类中

虚方法用virtual修饰
要有方法体,哪怕是一个分号
可以被子类继承或者override
除了密封类外都可以写
如

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方法

}

}

以上只是例子,真实并不这么做.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐