继承(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 超类 )
java中的继承(IS-A)与组合(HAS-A)关系[重复]