繼承(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)