我们用动物类作为基类 也叫作父类
狗类和猫类作为派生类,也叫子类
class Animal//基类 父类
{
//动物类所有功能
public string _name;
public int _age;
public void Eat()
{
Console.WriteLine(“吃”);
}
public void Speak()
{
Console.WriteLine(“叫”);
}
}
class Dog:Animal//派生类 子类
{
public void LookHouse()//狗独特的功能
{
this.Eat();
Console.WriteLine(“狗看家”);
}
}
class Cat:Animal
{
public void CatchMouse()//猫独有的功能
{
Console.WriteLine(“猫捉老鼠”);
}
}
在Main 中调用
Dog dog = new Dog();
dog.LookHouse();
this 和based 的区别
this 指的是本类
以下其实 public Dog():this(“466456”)== public Dog(string name)了
public Dog():this(“466456”)
{
}
public Dog(string name)
{
}
base指的是父类
public Dog():base(“小黄”)
{
}
在父类中 public Animal(string name)
{
_name = name;
Console.WriteLine(_name);
}
//在main方法中调用的时候首先执行父类的无参 在执行子类的无参,若是实例化是添加参数则先执行父类的无参,在执行子类的有参
as的用法
如果是大范围赋值给小范围不用as 若是小范围赋值给范围 则用as
Dog dog = new Dog(“asds”);
dog.LookHouse();
Animal dog2 = dog;
dog = dog2 as Dog;
virtual虚方法的用法
例如动物都会吃则我们在父类中写个虚方法 在子类中我们重写这个方法
class Animal//基类 父类
{
public virtual void Eat()
{
}
在子类中
class Dog:Animal//派生类 子类
{
public override void Eat()
{
Console.WriteLine("狗吃骨头");
}