关于C#:abstract,virtual
2011-03-25 17:57
330 查看
一点理解和整理,记录下来以备查看:
abstract:
1.可以用于类,方法,属性,事件和索引指示器,表示其为抽象成员;
2.用abstract修饰的方法不可以声明主体;
3.只要类中有abstract修饰的成员,该类就必须声明为abstract的;
4.abstract修饰的类不可以实例化实体;
5.abstract类中的abstract成员可以由子类override;
6.abstract修饰符用来强制继承类必须实现某一成员。
virtual:
1.用virtual修饰的方法必须声明实体;
2.父类中的virtual成员可以由子类override;
3.用父类声明一个变量指向子类的实体,如果子类override了父类中的virtual方法,那么执行子类中的方法,否则执行父类中的方法
(如果父类中该方法不声明为virtual,也可以被子类继承,但是如果子类中有签名相同的方法,那么这里相当于子类隐藏了父类的该方法,
即相当于使用了修饰符new,这时用父类声明一个变量指向子类的实体,执行该方法将执行父类的方法);
4.用来实现多态。
override:
1.用来重写成员;
2.类中override修饰的成员,其子类中可以继续override。
abstract:
1.可以用于类,方法,属性,事件和索引指示器,表示其为抽象成员;
2.用abstract修饰的方法不可以声明主体;
3.只要类中有abstract修饰的成员,该类就必须声明为abstract的;
4.abstract修饰的类不可以实例化实体;
5.abstract类中的abstract成员可以由子类override;
6.abstract修饰符用来强制继承类必须实现某一成员。
virtual:
1.用virtual修饰的方法必须声明实体;
2.父类中的virtual成员可以由子类override;
3.用父类声明一个变量指向子类的实体,如果子类override了父类中的virtual方法,那么执行子类中的方法,否则执行父类中的方法
(如果父类中该方法不声明为virtual,也可以被子类继承,但是如果子类中有签名相同的方法,那么这里相当于子类隐藏了父类的该方法,
即相当于使用了修饰符new,这时用父类声明一个变量指向子类的实体,执行该方法将执行父类的方法);
4.用来实现多态。
override:
1.用来重写成员;
2.类中override修饰的成员,其子类中可以继续override。
相关文章推荐
- [C#基础知识]关于虚函数Virtual 及 抽象函数Abstract
- C#的virtual 与abstract
- C#中Abstract和Virtual
- C#基础知识系列七(base、this、new、override、abstract、virtual、static)
- c# interface virtual ,abstract ,多态实例
- C#中的interface,abstract和virtual
- c#中关于virtual,override和new的理解
- 黑马程序员—C#中abstract与virtual的区别
- C#中修饰符用法“virtual(虚拟函数)、override(重载函数)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”
- C#:study(6)--多态与virtual、abstract
- C#中virtual 方法和abstract方法的区别
- 简单易懂的解释c#的abstract和virtual的用法和区别
- C#中abstract和virtual区别
- c#中abstract、override、new、virtual、sealed使用和示例
- C# 关键字 abstract, virtual, override, sealed, new
- C#中的static,interface,virtual,abstract,override的用法
- c#中的 virtual override 和abstract 以及sealed
- C#方法的前缀 abstract virtual override static sealed
- C# abstract virtual interface的区别(付static、override用法)
- C#中的abstract与virtual