定义泛型类
来源:互联网 发布:佳能ip7280清零软件 编辑:程序博客网 时间:2024/05/18 16:19
......又是继承又是实现接口 看得我累崩了 汗...真够绕啊
- public abstract class Animal
- {
- protected string name;
- public string Name
- {
- get
- {
- return name;
- }
- set
- {
- name = value;
- }
- }
- public Animal()
- {
- name = "The animal with no name";
- }
- public Animal(string newName)
- {
- name = newName;
- }
- public void Feed()
- {
- Console.WriteLine("{0} has been fed.", name);
- }
- public abstract void MakeANoise();
- }
- public class Chicken : Animal
- {
- public void LayEgg()
- {
- Console.WriteLine("{0} has laid an egg.", name);
- }
- public Chicken(string newName)
- : base(newName)
- {
- }
- public override void MakeANoise()
- {
- Console.WriteLine(" {0} says 'Cluck!'", name);
- }
- }
- public class Cow : Animal
- {
- public void Milk()
- {
- Console.WriteLine("{0} has been milked.", name);
- }
- public Cow(string newName)
- : base(newName)
- {
- }
- public override void MakeANoise()
- {
- Console.WriteLine(" {0} syas 'moo'.", name);
- }
- }
- public class SuperCow:Cow
- {
- public void Fly()
- {
- Console.WriteLine(" {0} is flying!", name);
- }
- public SuperCow(string newName)
- : base(newName)
- {
- }
- public override void MakeANoise()
- {
- Console.WriteLine("{0} says 'here I come to save the day!'", name);
- }
- }
- public class Farm<T> : IEnumerable<T>
- where T:Animal
- {
- private List<T> animals = new List<T>();
- //只读属性
- public List<T> Animals
- {
- get { return animals; }
- }
- //实现IEnumerable<T>.GetEnumerator()
- public IEnumerator<T> IEnumerable<T>.GetEnumerator()
- {
- return animals.GetEnumerator();
- }
- //实现 IEnumerable.GetEnumerator()
- IEnumerator IEnumerable.GetEnumerator()
- {
- return animals.GetEnumerator();
- }
- public void MakeNoises()
- {
- foreach (T animal in animals)
- {
- //由于做了约束
- animal.MakeANoise();
- }
- }
- /// <summary>
- ///提取是 Cow或继承自Cow的项
- /// </summary>
- /// <returns></returns>
- public Farm<Cow> GetCows()
- {
- Farm<Cow> cowFarm = new Farm<Cow>();
- foreach (T animal in animals)
- {
- if (animal is Cow)
- {
- cowFarm.Animals.Add(animal as Cow);
- }
- }
- return cowFarm;
- }
- public void FeedTheAnimals()
- {
- foreach (T animal in animals)
- {
- animal.Feed();
- }
- }
- }
- 定义泛型类
- 定义泛型类
- 定义泛型类
- 泛型类定义
- 什么时候定义泛型类?
- 定义泛型类 lesson3
- 泛型类接口定义
- 定义
- 定义
- 定义
- 泛型类的定义构造方法
- 泛型类的定义及约束
- 泛型类的定义与使用
- 泛型类的构造方法定义
- 8.2 定义一个简单的泛型类
- 集合框架——定义泛型类
- java 泛型类的定义和封装实例
- java中定义泛型类和定义泛型方法的写法
- 银行的支票签发问题
- 简单笔记(二)
- Stirng.IsNullOrEmpty() VS string.length==0
- Java基础学习之路
- 风雨20年:我所积累的20条编程经验
- 定义泛型类
- 学C++还是Java?
- The Greateat--Cat Power
- 不会的问题
- Array 和ArrayList区别
- 《高质量C++编程指南》读后笔记三
- C# 进制转换
- C# yield 关键字
- C# checked 检查整型数据运算溢出 as,is运算符 可空类型空结合