码迷,mamicode.com
首页 > 其他好文 > 详细

继承(is与as)

时间:2017-06-22 17:39:35      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:static   each   key   main   line   指定   强制转换   name   ati   

is操作符用于检查对象和指定的类型是否兼容

as操作符主要用于二个对象之间的类型转换

 

 //父类
  public   class Animal
    {
      public int age;
    }

 

 //子类
   public class Cat:Animal
    {
       public string name;
       //无参构造
       public Cat()
       {

       }
       //有参构造
       public Cat(int age, string name)
       {
           this.age = age;
           this.name = name;
       }

}

 

 

 //子类
   public class Dog:Animal
    {
       public string color;
       //无参构造
       public Dog()
       {

        }
       //有参构造
       public Dog(int age, string color)
       {
           this.age = age;
           this.color = color;
       }
    }

 

   //测试类
      public  static void Main(string[] args)
        {
            List<Animal> list = new List<Animal>()  //范型集合
            {
                new Cat(15,"毛毛"),
                new Dog(10,"灰色")
            };

            foreach (Animal animal in list)
            {
                if(animal is Cat)
                {
                    Cat cat = (Cat)animal;   //类型强制转换
                    Console.WriteLine(cat.age + "\t"+cat.name);
                 }

                if (animal is Dog)   //is主要做类型判定
                {
                    //Dog dog = (Dog)animal;  //类型强制转换
                    Dog dog = animal as Dog; //as做类型转换
                    Console.WriteLine(dog.age + "\t"+dog.color);
                }
            }
            Console.ReadKey();
        }

 

继承(is与as)

标签:static   each   key   main   line   指定   强制转换   name   ati   

原文地址:http://www.cnblogs.com/sujulin/p/7066159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!