有将近一两个月没有学习c#了,因为临近期末要准备考试复习,考完试后又忙着准备专业课的比赛,导致c#的学习停止了好久,现在终于闲下来了还是,继续学习我们的c#吧
c#的继承:继承是类上面的继承我们在很多开发的时候会根据情况来增加一些数据或者方法,或者是重新写一个新的类时有原来已经写好的数据这个时候我们如果在写一次就会显得很麻烦,这个时候我们就可以在原来的类上面派生一个类即可以写新的数据和方法也可以获取以前已经写好的数据和方法,而基类和派生类的关系就像是基类是人,派生类可以是大人,小人,老人,男人,女人,健康人,不健康的人,他们都有一个共同的基类就是都是人,而派生就将人这个大类细化了但也包含了人,
基类和派生的写法是:class 派生类:基类 其最简单的特性就是派生类拥有基类的方法和数据可以直接的使用
class ji
{
public int a;
public int b;
public int cf(int a, int b)
{
int c = a * b;
return c;
}
public void shuchu()
{
Console.WriteLine("第一个数{0}", a);
Console.WriteLine("第二个数{0}",b);
Console.WriteLine("乘积{0}",cf(a,b));
}
}
class pai : ji
{ public int e;
public int paifanf(int e)
{
int d= cf(a,b) * e;
return d;
}
public void shuchua()
{
shuchu();
Console.WriteLine("第三个数{0}", e);
Console.WriteLine("乘积{0}", paifanf(e));
}
}
class Program
{
static void Main(string[] args)
{
pai piaa = new pai();
piaa.e = 5;
piaa.a = 8;
piaa.b = 3;
piaa.shuchua();
}
}
上面的效果就说明了派生类和基类的关系了,派生类是直接可以使基类里的数据和方法的当然这个的前提是基类里的数据和方法的修饰符要都是公开的才可以直接使用,
基类的初始化了,当我们用派生类继承了基类后我们的初始化的往往是派类里的数据和方法,而我们基类里的数据要在成员初始化时一同的初始化,在这里就有一个关键字base,base就代表了父类,包括父类里面隐藏的成员也可以用关键字base来获取
class jc//基类的创建
{
protected double width;
protected double height;
public jc(double l, double w)
{
width = l;
height = w;
}
public double mianji()
{
return width * height;
}
public void shuchu()
{
Console.WriteLine("该长方形的长为{0}", height);
Console.WriteLine("该长方形的宽为{0}", width);
Console.WriteLine("该长方形的面积为{0}", mianji());
}
}
class jca : jc
{
private double cost;
public jca(double l, double w) : base(l, w)
{
}
public double jccb()
{
double cost;
cost = mianji() * 70;
return cost;
}
public void shuchu()
{
base.shuchu();
Console.WriteLine("该地的成本为{0}", jccb());
}
}
class Program
{
static void Main(string[] args)
{
jca j = new jca(7.6, 9.8);
j.shuchu();
Console.ReadLine();
}
}
继承还有一个特点就是我们的类继承其他类的时候,他也可以被其他的类当做父类继承,他并不是单一的一类其继承的后的特性完全相同,
在菜鸟教程里还有一个可以多重继承但是c#不支持,但是可以用接口来实现这个功能但是需要我们后面才学的接口,这里我们就先放一放,到后面学到后在回来学习,