一、基础概念
封装:在c#的使用中,我们通常会将所使用到的参数,方法以及变量放到一个class中,方便在以后的使用中进行调用,这便是对数据的封装。
继承:继承是c#中的一个重要概念,它能够扩展clsss中的参数以及方法,如果子类和父类具有相同方法,子类会将父类中的方法进行隐藏,从而完成对程序的升级,进一步完善程序的功能。子类(派生类)能够继承父类(基类)中的所有参数并进行调用,继承也能够实现多层继承,比如,子类继承父类,父类继承爷爷类,从而实现子类继承自爷爷类。
多态:总的来说,就是同一个方法根据调用者的不同,执行不同的状态。
二、案例分析
封装:我们把麻雀和老鹰的名字、食物以及Eat()方法放在其各自所在的类中,这边完成了数据的封装从而更加方便的调用其中的方法。
public class Sparrow
{
private string name = “麻雀”;
private string food = “稻谷”
public void Eat()
{
Console.WriteLine(name + “吃” + food);
}
}
public class Eagle
{
private string name = “老鹰”;
private string food = “麻雀”;
public void Eat()
{
Console.WriteLine(name + “吃” + food);
}
}
继承:Eagle类与Sparrow类都继承Bird类,而Bild类中存在方法Fly,所以在他们各自的类中也默认存在Fly这个方法,并且能够从中进行调用。
public class Bird
{
public void Fly()
{
Console.WriteLine(“飞翔”);
}
}
public class Sparrow: Bird
{
private name = “麻雀”;
private food = “稻谷”
public void Eat()
{
Console.WriteLine(name + "吃" + food);
}
}
public class Eagle: Bird
{
private name = “老鹰”;
private food = “小鸡”
public void Eat()
{
Console.WriteLine(name + "吃" + food);
}
}
多态:通过下面一段代码和运行结果可以看出,对象sparrow与对象eagle同样调用了Eat方法,但是他们所执行的命令是完全不同的,这便是多态的一种表现形式。
namespace duotai
{
internal class Program
{
static void Main(string[] args)
{
Bird sparrow = new Sparrow();
Bird eagel = new Eagle();
sparrow.Eat();
eagle.Eat();
Console.ReadKey();
}
}
public class Bird
{
public void Eat()
{
Console.WriteLine("鸟吃食物");
}
}
public class Sparrow: Bird
{
private string name = "麻雀";
private string food = "稻谷";
public void Eat()
{
Console.WriteLine(name +"吃" + food);
}
}
public class Eagle: Bird
{
private string name = "老鹰";
private string food = "小鸡";
public void Eat()
{
Console.WriteLine(name +"吃" + food);
}
}
}
运行结果: