现在的位置: 首页 > 综合 > 正文

C#中泛型的特性3-继承

2013年08月23日 ⁄ 综合 ⁄ 共 1398字 ⁄ 字号 评论关闭
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace 泛型
  6. {
  7.     //泛型特性3 继承
  8.     // 泛型类可以执行泛型接口,也可以派生于一个类
  9.     class 泛型的特性
  10.     {
  11.         public static void Main()
  12.         {
  13.             //Derived<int> sub = new Derived<int>();
  14.             ////在子类声明时重复父类的类型T,那么,子类父亲类是一样的!(int)
  15.             //sub.PrintInfo(22);
  16.             //sub.SubPrint(22);
  17.             
  18.             //如果父亲声明为string ,那么,则子类是int 父类是string
  19.             Derived<int> sub = new Derived<int>();
  20.             sub.PrintInfo("22");
  21.             sub.SubPrint(22);
  22.             Console.ReadLine();
  23.         }
  24.     }
  25.     class Base<T>
  26.     {
  27.         public void PrintInfo( T t)
  28.         {
  29.             Console.WriteLine( t );
  30.         }
  31.     }
  32.     //继承一个类时,必须重复或者指定基类的泛型类型!
  33.     class Derived<T> : Base<string// or  Baset<int> 指定
  34.     {
  35.         public void SubPrint( T t)
  36.         {
  37.             Console.WriteLine(t);
  38.         }
  39.     }
  40.     abstract class Calc<T>
  41.     {
  42.         public abstract T Add(T x, T y);
  43.         public abstract T Sub(T x, T y);
  44.     }
  45.     //泛型类的子类不一定非得是泛型类,因为他可以为父类指定具体的类型!
  46.     class SimpleCalc : Calc<int>
  47.     {
  48.         //因为指定了具体类型,所以我们的实现可以用public override int Add(int x, int y) --int
  49.         //否则,本类也必须是泛型类实现变成了public override T Add(int x, int y) ----T
  50.         public override int Add(int x, int y)
  51.         {
  52.             return x + y;
  53.         }
  54.         public override int Sub(int x, int y)
  55.         {
  56.             return x - y;
  57.         }
  58.          
  59.     }
  60. }

抱歉!评论已关闭.