zoukankan      html  css  js  c++  java
  • 面向对象:父类子类 函数重载与复写

    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();
            }
        }
    }
  • 相关阅读:
    以太网数据帧最小64字节
    网络基础协议之ARP
    Windows FAT32转换NTFS
    Java面试红宝书(尼恩编著)
    死磕设计模式1:Builder (构建者模式)
    Zookeeper 分布式锁 (图解+秒懂+史上最全)
    TCP/IP协议 (图解+秒懂+史上最全)
    Java高并发核心编程(卷2):多线程、锁、JMM、JUC、高并发设计模式
    Java高并发核心编程(卷1):NIO、Netty、Redis、ZooKeeper
    ThreadLocal(史上最全)
  • 原文地址:https://www.cnblogs.com/dlexia/p/4525797.html
Copyright © 2011-2022 走看看