C# 多态性
来源:互联网 发布:文华财经模拟软件 编辑:程序博客网 时间:2024/05/21 09:18
(1)定义:
多态是针对派生类和基类的具有相同签名的方法而言的。基类定义并且实现了声明为 virtual 或者abstract的方法,然后派生类通过关键词 override来重写他们
(2)传递性之 virtual:
A是基类,B继承A,C继承B,如果A中有声明为virtual的属性或者方法,那么不管B中是否针对该属性,方法声明为override,C都可以overrideA中的这一virtual属性或者方法
传递性之 interface
(3)总结:
接口声明的方法不具有传递性,virtual声明的方法具有传递性。能够override的只能是标记为virtual,abstract,override的。
多态是针对派生类和基类的具有相同签名的方法而言的。基类定义并且实现了声明为 virtual 或者abstract的方法,然后派生类通过关键词 override来重写他们
(2)传递性之 virtual:
A是基类,B继承A,C继承B,如果A中有声明为virtual的属性或者方法,那么不管B中是否针对该属性,方法声明为override,C都可以overrideA中的这一virtual属性或者方法
传递性之 interface
namespace ConsoleApplication6Override{ interface Interface1 { void func1(int x); void func2(string str); } class Class1:Interface1 { public void func1(int x) { Console.WriteLine("this is in Class1 inherits Interface1"); } public void func2(string str) { Console.WriteLine("this is in Class1 inherits Interface1"); } } //error ,继承成员“ConsoleApplication6Override.Class1.func1(int)”未标记为 virtual、abstract 或 override,无法进行重写 //error,继承成员“ConsoleApplication6Override.Class1.func2(string)”未标记为 virtual、abstract 或 override,无法进行重写 class Class2:Class1 { public override void func1(int x) { } public override void func2(string str) { } }}
(3)总结:
接口声明的方法不具有传递性,virtual声明的方法具有传递性。能够override的只能是标记为virtual,abstract,override的。
0 0
- C#多态性
- C#多态性
- c# 多态性
- c# 多态性
- c# 多态性
- C#多态性
- c# 多态性
- C# 多态性
- C#多态性
- C#多态性
- C# 多态性
- C# 多态性
- C# 多态性
- 多态性C#
- C# 多态性
- C# 多态性
- C# 多态性
- C# 多态性
- Java中equals和==操作符解析
- Android中对Log日志文件的分析
- Mule3用户手册:Mule ESB 3使用要点
- iOS系统GCD学习(1):介绍
- C++前向声明
- C# 多态性
- 最短路总结:Dijkstra,SFPA,Bellman Ford判负环,Floyd
- UIView 的 autoresizingMask 属性介绍
- Crawler4j在Eclipse中的配置
- 蓝桥杯入门训练 Fibonacci数列
- 一些关于交互的优秀解决方案
- draftsight+qgis+mapshaper+leftlet做web地图
- 黑马程序员_static 关键字
- 频谱和功率谱