【笔记】《C#大学教程》- 第10章 面向对象编程:多态性
2016-03-15 14:31
375 查看
1.类型转换:
2.定义抽象类和抽象方法:
(1).只有在抽象类中才能定义抽象方法;
(2).无法实例化抽象类;
(3).抽象方法必须在子类中被覆盖;
(4).可以在抽象类中定义虚函数(不一定要被子类覆盖的virtual函数)。
3.定义接口:
(1). 接口不包含构造函数,方法不包含实现;
(2). 接口中的所有属性和方法都必须在类实现中被定义;
(3). 接口只能声明为public;
4.委托:
C#不允许将方法引用作为参数,而是通过一个创建委托。
5.重载运算符:
ParentClass a = new ChildClass(); ChildClass c = (ChildClass) a; ParenClass b = new ParentClass(); //false b is ChildClass;
2.定义抽象类和抽象方法:
(1).只有在抽象类中才能定义抽象方法;
(2).无法实例化抽象类;
(3).抽象方法必须在子类中被覆盖;
(4).可以在抽象类中定义虚函数(不一定要被子类覆盖的virtual函数)。
public abstract class Shape { public virtual double Area() { return 0; } public virtual double Volume() { return 0; } public abstract double Func(); public abstract string Name { get; } }
3.定义接口:
(1). 接口不包含构造函数,方法不包含实现;
(2). 接口中的所有属性和方法都必须在类实现中被定义;
(3). 接口只能声明为public;
public interface IShape { double Area(); double Volume(); string Name { get; } }
public class Point:IShape { public Point () { } public virtual double Area() { return 0; } public virtual double Volume() { return 0; } public virtual string Name { get { return "Point"; } } }
4.委托:
C#不允许将方法引用作为参数,而是通过一个创建委托。
namespace TestDelegate { class Program { private delegate bool Comparator(int a, int b); private static void Func(Comparator Comp) { MessageBox.Show(Comp(1,2).ToString()); } private static bool Compare(int a, int b) { return a < b; } static void Main(string[] args) { Func(new Comparator(Compare)); } } }
5.重载运算符:
public static ComplexNumber operator + ( ComplexNumber x, ComplexNumber y ) { return new ComplexNumber( x.Real + y.Real, x.Imaginary + y.Imaginary); }
相关文章推荐
- Ruby类继承、抽象类、类拓展混入、代理类实例
- c#入门之类型转换详解
- 解析abstract与override究竟可不可以同时使用
- C#难点逐个击破(9):类型转换
- C#使用委托(delegate)实现在两个form之间传递数据的方法
- Android编程学习之抽象类AbsListView用法实例分析
- C++中4种类型转换方式 cast操作详解
- C++中的四种类型转换
- C#中实现抽象类里建立静态方法
- C#抽象类和接口的区别分析
- C#利用delegate实现Javascript的each方法
- asp 类型转换函数大全第1/2页
- c#中的interface abstract与virtual介绍
- Query中click(),bind(),live(),delegate()的区别
- 详解jquery事件delegate()的使用方法
- jQuery中 delegate使用的问题
- 浅谈jquery中delegate()与live()
- 由点击页面其它地方隐藏div所想到的jQuery的delegate
- JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
- Javascript 强制类型转换函数