C#关键字 虚方法和抽象方法
2010-05-15 18:00
253 查看
虚方法vitual和抽象方法abstract的区别:
1虚方法和抽象方法都是为了多态而诞生的
2虚方法利用关键词virtual表示,抽象方法利用abstract表示
3虚方法有实现的主题,可以有实现,也可以没有实现,而抽象方法仅仅只有一个声明,在子类中必须进行override即实现
4虚方法在调用的时候可以使用父类的方法实现主题,而抽象方法则必须在子类中进行override
5虚方法可以存在于普通的类中,而抽象方法只能存在于抽象类之中,及abstract类中
另外:
为什么需要new修饰符,即在继承一个父类的时候,子类中利用new来隐藏父类的实现,出现的作用就是为了弥补父类的设计不足,从而来隐藏父类的使用
多态:一个是基类继承式多态,一个是接口实现式多态
动态绑定:即晚期绑定,是为了区别静态绑定的区别,静态绑定是在编译期就能确定关联,通过方法的override来实现,而动态绑定是在运行期通过方法的重载即override来实现的
在使用多态的时候,前面的父类型或者是实现的接口类型的作用:在运行期的时候,通过检查此方法,然后看方法的类型,如果是虚方法或者是抽象方法,那么就看具体的类型有没有重载此方法,如果重载了此方法,那么就调用具体类型的实现方法,如果没有,那么就直接调用父类的实现方法
1虚方法和抽象方法都是为了多态而诞生的
2虚方法利用关键词virtual表示,抽象方法利用abstract表示
3虚方法有实现的主题,可以有实现,也可以没有实现,而抽象方法仅仅只有一个声明,在子类中必须进行override即实现
4虚方法在调用的时候可以使用父类的方法实现主题,而抽象方法则必须在子类中进行override
5虚方法可以存在于普通的类中,而抽象方法只能存在于抽象类之中,及abstract类中
另外:
为什么需要new修饰符,即在继承一个父类的时候,子类中利用new来隐藏父类的实现,出现的作用就是为了弥补父类的设计不足,从而来隐藏父类的使用
多态:一个是基类继承式多态,一个是接口实现式多态
动态绑定:即晚期绑定,是为了区别静态绑定的区别,静态绑定是在编译期就能确定关联,通过方法的override来实现,而动态绑定是在运行期通过方法的重载即override来实现的
在使用多态的时候,前面的父类型或者是实现的接口类型的作用:在运行期的时候,通过检查此方法,然后看方法的类型,如果是虚方法或者是抽象方法,那么就看具体的类型有没有重载此方法,如果重载了此方法,那么就调用具体类型的实现方法,如果没有,那么就直接调用父类的实现方法
相关文章推荐
- 用C#中的params关键字实现方法形参个数可变
- C# 屏蔽关键字的实现方法
- C#中关键字using的三种使用方法
- C# 方法中的常见关键字(如:this,default etc.)
- 【转】用C#中的params关键字实现方法形参个数可变
- C# 参考之方法参数关键字:params、ref及out
- 用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字
- C#方法的参数关键字:ref、out、params
- C# Dynamic关键字之:调用属性、方法、字段的实现方法
- 静态类和静态方法,抽象类和抽象方法,new关键字,值类型和引用类型,接口
- C# 方法参数关键字:params、ref及out
- C#使用yield关键字让自定义集合实现foreach遍历的方法
- C# 参考之方法参数关键字:params、ref及out
- C#方法参数传递-引用参数ref关键字
- Lua中访问C#中的属性和方法-特殊情况-带有out和ref关键字
- C# 参考之方法参数关键字:params、ref及out
- C#虚方法、重写方法和抽象方法
- (C#)方法参数关键字:ref、out、params详解
- 用C#中的params关键字实现方法形参个数可变
- C# 参考之方法参数关键字:params、ref及out