• 继承 父类与子类的转换


    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();
            }
        }
    }
  • 相关阅读:
    java期末复习2
    java期末复习
    Educational Codeforces Round 76 (Rated for Div. 2)
    ICPC南昌时间安排
    codeforces 597 div2 ABCDF
    codeforces 597 div2 ABC
    Vue中provide和inject 用法
    Js打印九九乘法表
    document.documentElement和document.body的区别
    移动端关于横屏问题
  • 原文地址:https://www.cnblogs.com/w-wz/p/4526474.html
Copyright © 2020-2023  润新知