首页 > 其他 > 详细

继承 父类与子类的转换

时间:2015-05-24 21:45:25      阅读:158      评论:0      收藏:0      [点我收藏+]
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class shengwu
    {
        
        public void shengming()
        {
            Console.WriteLine("生物都有生命");
        }
        public virtual void huxi()
        {
            Console.WriteLine("生物都呼吸!");
        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class shengwu
    {
        
        public void shengming()
        {
            Console.WriteLine("生物都有生命");
        }
        public virtual void huxi()
        {
            Console.WriteLine("生物都呼吸!");
        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class dongwu:shengwu
    {
       
        public void shengming()
        {
            Console.WriteLine("动物都有生命!");
        }
        public override void huxi()
        {
            Console.WriteLine("动物都呼吸!");
        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            shengwu sdata = new shengwu();
            sdata.shengming();//建的哪一个类就调用哪个类的方法,调用shengwu中的shengming()

            dongwu ddata = new dongwu();
            ddata.shengming();//同上

            shengwu zhdata = ddata;
            zhdata.shengming();//子类dongwu直接转化为父类shengwu后,调用父类shengwu的方法shengming()

            dongwu hydata = (dongwu)zhdata;
            hydata.shengming();//转化为父类的dongwu再转回子类dongwu后,调用子类dongwu的方法shengming()



            sdata.huxi();
            ddata.huxi();
            zhdata.huxi();//复写函数(复写前virtual,复写后override),子类转换为父类后调用的复写后(子类)的函数而不是父类的函数
            hydata.huxi();//转化为父类的dongwu再转回子类dongwu后,调用子类dongwu的方法shengming()

            Console.ReadLine();
        }
    }
}


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            shengwu sdata = new shengwu();
            sdata.shengming();//建的哪一个类就调用哪个类的方法,调用shengwu中的shengming()

            dongwu ddata = new dongwu();
            ddata.shengming();//同上

            shengwu zhdata = ddata;
            zhdata.shengming();//子类dongwu直接转化为父类shengwu后,调用父类shengwu的方法shengming()

            dongwu hydata = (dongwu)zhdata;
            hydata.shengming();//转化为父类的dongwu再转回子类dongwu后,调用子类dongwu的方法shengming()



            sdata.huxi();
            ddata.huxi();
            zhdata.huxi();//复写函数(复写前virtual,复写后override),子类转换为父类后调用的复写后(子类)的函数而不是父类的函数
            hydata.huxi();//转化为父类的dongwu再转回子类dongwu后,调用子类dongwu的方法shengming()

            Console.ReadLine();
        }
    }
}

 

继承 父类与子类的转换

原文:http://www.cnblogs.com/w-wz/p/4526474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!