汉企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();
        }
    }
}

 

posted @ 2015-05-24 10:44  XCml  阅读(229)  评论(0编辑  收藏  举报