接口 抽象类 应用不同与区别,抽象方法 虚方法应用不同
2013-07-04 08:23
417 查看
接口 抽象类 应用不同与区别
应用不同:
1、如果所有抽象出的方法不确定性很高,就定义为接口来封装,所有方法抽象,由实现类全部实现
2、如果部分抽象出的方法不确定性很高,就定义为抽象类来封装,能确定的方法实现,不确定的方法抽象,由实现类部分实现,部分重写(不变就不重写啦)
3、如果所有抽象出的方法确定性很高,就定义为基础类,所有方法提供基本实现,由子类去重写(不变就不用写子类啦)
抽象方法 虚方法应用不同:
应用不同:
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方法 } } 以上只是例子,真实并不这么做.
相关文章推荐
- 虚函数,抽象方法,抽象类,接口的区别和联系
- 接口、抽象类、抽象方法、虚方法 的区别
- C#中的虚方法、抽象方法、抽象类、接口的联系与区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的区别
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- 【转】C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的区别
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- 接口、抽象类、抽象方法、虚方法 的区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- 抽象类、抽象方法、以及接口的区别
- C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
- C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系
- C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系
- 黑马程序员_学习日记24_面向对象技术高级应用(接口、抽象类与抽象方法、密封类与密封方法)
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别
- 接口和抽象类的区别、抽象方法的一些特点、抽象类是否可继承实体类(concrete class)