1.继承
继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。
当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的类被称为派生类。
继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物 属于(IS-A) 动物,狗 属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。
一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据和函数。
<访问修饰符> class <基类>{...}
class <派生类>:<基类>{...}
派生类继承了基类的成员变量和成员方法。因此父类对象应在子类对象创建之前被创建。您可以在成员初始化列表中进行父类的初始化。
2. C#多重继承
多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。
C# 不支持多重继承。但是,您可以使用接口来实现多重继承。接口定义关键字interface。
namespace InheritTest
{
//定义基类
class Animal
{
//成员变量
public int age;
public string name;
//构造函数
public Animal(int a, string n)
{
age = a;
name = n;
}
//成员函数
public void eat()
{
Console.WriteLine("{0} age= {1} need eat!",name, age);
}
}
//接口 基类
public interface Fly
{
void fly();
}
class Dog: Animal,Fly
{
public double weigh;
public Dog(int a, string n):base(a,n)
{}
new public void eat()//加上new是因为报了warning CS0108
{
base.eat();
Console.WriteLine("weigh={0}",weigh);
}
public void setWeigh(double w)
{
weigh = w;
}
public void fly()
{
Console.WriteLine("Can Fly !!");
}
}
class ExecuteTest
{
static void Main(string[] args)
{
Dog d = new Dog(12,"Helly");
d.setWeigh(34.2);
d.eat();
d.fly();
Console.ReadKey();
}
}
}