继承(is与as)

Posted 努力奋斗吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承(is与as)相关的知识,希望对你有一定的参考价值。

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)的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )

组合:使用特征来避免转发功能?

多态类库委托is和as运算符泛型集合

java中的继承(IS-A)与组合(HAS-A)关系[重复]

多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量

is as运算符