1. 程式人生 > >繼承(is與as)

繼承(is與as)

col dog 類型強制轉換 animal pan round int 檢查 是否

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)