码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象:父类子类 函数重载与复写

时间:2015-05-24 15:31:23      阅读:127      评论: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/dlexia/p/4525797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!