汉企C#面向对象——继承Practice

 class Dianqi //创建电器类:父类
{
private string _Dianqimingzi; public string Dianqimingzi
{
get { return _Dianqimingzi; }
set { _Dianqimingzi = value; }
}
}
  class Computer:Dianqi //创建电脑类:子类
{
private string _Diannaomingzi; public string Diannaomingzi
{
get { return _Diannaomingzi; }
set { _Diannaomingzi = value; }
}
}
class Lenovo:Computer  //创建Lenovo类:子类的子类
{
private string _Lname; public string Lname
{
get { return _Lname; }
set { _Lname = value; }
}
}
namespace 继承Practice
{
class Program
{
static void Main(string[] args)
{ //电器:父类
Dianqi dianqi1 = new Dianqi();
dianqi1.Dianqimingzi = "电器";
Console.WriteLine("电器的名字为"+dianqi1.Dianqimingzi);
//电脑:子类
Computer diannao = new Computer();
diannao.Diannaomingzi = "电脑";
Console.WriteLine("电脑的名字为"+diannao.Diannaomingzi);
//继承了电器属性的电脑
diannao.Dianqimingzi = "继承了电器属性的电脑(子类继承了父类的电器名字的属性)";
Console.WriteLine("电脑子类继承电器父类后的属性为 "+diannao.Dianqimingzi); //Lenovo:子类的子类
Lenovo le = new Lenovo();
le.Lname = "联想电脑";
Console.WriteLine("Lenovo电脑的名字为 "+le.Lname); //继承了电脑属性的Lenovo
Lenovo le1 = new Lenovo();
le1.Diannaomingzi = "联想电脑";
le1.Dianqimingzi = "电器下的电脑为联想";
Console.WriteLine("电脑属性的名字为 "+le1.Diannaomingzi);
Console.WriteLine("电器属性的名字为 " + le1.Dianqimingzi); //子类转父类:子类继承父类,一个子类只能有一个父类,一个父类可以有多个子类。
//子类具备父类的功能和属性,父类不具备子类的。
//子类可以转化为父类,但父类不具备子类的属性和方法。
//比如 猪 可以叫生物, 但生物不可以叫猪。
Computer Com = new Computer();//子类电脑
Dianqi DCom = Com;//子类电脑转换为父类电器
DCom.Dianqimingzi = "子类电脑转换为父类电器后的名字";
Console.WriteLine(DCom.Dianqimingzi); //父类可以转换为子类,但是有前提条件。 前提:父类之前的本质为子类,才可以转换为对应的子类。
Computer aaa = new Computer(); //创建一个子类aaa
Dianqi ddd = aaa;//将子类aaa转换为父类ddd
Computer xxx = (Computer)ddd; //将父类ddd转换为子类xxx
xxx.Dianqimingzi = "父类转换为子类";
Console.WriteLine(xxx.Dianqimingzi); //下面为不符合前提的情况,代码无错,运行会出错。
//Dianqi ddd1 = new Dianqi();
//Computer xxx1 = (Computer)ddd1;
//xxx1.Dianqimingzi = "父类转换为子类(不符合前提的情况)";
//Console.WriteLine(xxx1.Dianqimingzi);
Console.ReadLine();
}
}
}
上一篇:PC-CSS-多浏览器支持HTML5


下一篇:2015年第2本(英文第1本):《The Practice of Programming》