继承

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            //shengwu data = new shengwu();//父类
            //data.Name = "GOD";
            //Console.WriteLine(data.Name); 
            //data.life();   函数直接输出



            //dongwu ddata = new dongwu();
            //ddata.huxi();//子类自身的属性:多态
            //ddata.life();//子类继承父类的life()方法
            //ddata.Dname="dog";//子类继承父类的Sname



            //zhiwu zdata = new zhiwu();
            //zdata.Zname = "";//继承父类同上



            //tiger tdata = new tiger();
            //tdata.Name = "";//继承祖父类shengwu
            //tdata.Dname = "";//继承父类dongwu
            //tdata.Type = "";//自身属性



            //object odata = data;//所有类的基类
            //shengwu sdata = ddata;//子类可以直接转化为父类;ddata子类转成shengwu父类
            //dongwu adata = (dongwu)ddata;//父类转子类条件:父类的对象必须是由某个子类的对象转换来的,才能转换回去:把转化成父类的ddata转换为子类ddata
            //Console.WriteLine(adata.Dname);//
            zhiwu zzdata = (zhiwu)ddata;不可以,ddata本身为dongwu类,不能强制转换为zhiwu类
            dongwu ddata = new dongwu();
            ddata.life();

            shengwu data = new shengwu();
            data.life();

            shengwu zhdata = ddata;
            zhdata.life();          //子类可以直接转化为父类;ddata子类转成shengwu父类

            dongwu hzdata = (dongwu)zhdata;
            hzdata.life();        //父类转子类条件:父类的对象必须是由某个子类的对象转换来的,才能转换回去:把转化成父类的ddata转换为子类ddata

            ddata.huxi();
            data.huxi();
            zhdata.huxi();  //子类可以直接转化为父类;ddata子类转成shengwu父类 但是因为在子类重写override 父类虚的virtual 所以此处显示的为子类的值
            hzdata.huxi();
            Console.ReadLine();
        }
    }
}

  

namespace ConsoleApplication3
{
    class shengwu
    {
        private string _Name;

        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
        public void life()
        {
            Console.WriteLine("生物都是有生命的!");
        }
        public virtual void huxi()
        {
            Console.WriteLine("生物都是会呼吸的");
        }
    }
}

  

namespace ConsoleApplication3
{
    class zhiwu:shengwu
    {
        private string _Zname;

        public string Zname
        {
            get { return _Zname; }
            set { _Zname = value; }
        }
        public void light()
        {
            Console.WriteLine("光合作用!");
        }
    }
}

  

namespace ConsoleApplication3
{
    class dongwu:shengwu
    {
        private string _Dname;

        public string Dname
        {
            get { return _Dname; }
            set { _Dname = value; }
        }
        public  void life()
        {
            Console.WriteLine("动物都是有生命的!");
        }
        public override void huxi()           
        {
            Console.WriteLine("动物都是会呼吸的");
        }
    }
}

  

namespace ConsoleApplication3
{
    class tiger:dongwu
    {
        private string type;

        public string Type
        {
            get { return type; }
            set { type = value; }
        }
    }
}

  

转载于:https://www.cnblogs.com/Mr-xue/p/4529015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值