• 继承


    1.继承是允许重用现有类去创建新类的过程。子类继承父类,一个子类只能有一个父类,父类可以有多个子类。子类具备父类的功能和属性,父类不具备子类的。

    格式  子类:父类  (用冒号隔开)

    2.子类父类变量的相互赋值

    构成继承关系的父类和子类对象之间有一个重要的特性:子类对象可以被当成基类对象使用

    子类可以直接转换成父类,但是父类不具备子类的属性和方法。

    父类转换为子类是有条件的,这个父类的对象必须是由某个子类的对象转换来的,才能再转换回去。


    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class Program
        {
            static void Main(string[] args)
            {
                dongwu da = new dongwu();
                da.zhonglei = "动物";//继承shengwu父类,可以直接点出shengwu类的变量
                Console.WriteLine(da.zhonglei);
                da.shengming();
                shengwu sa = da;
                sa.Name = "";//转换成父类,只能点出父类的变量
                Console.WriteLine(sa.Name);
                sa.shengming();
                dongwu za = (dongwu)sa;//再转换为dongwu类
                za.Name = "";
                za.food = "";
                Console.WriteLine(za.Name+"	"+za.food);
                za.shengming();
                Console.ReadLine();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class shengwu
        {
            public string zhonglei;
            private string _Name;
    
            public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
            public void shengming()
            {
                Console.WriteLine("生物是生命体");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class dongwu:shengwu //继承父类shengwu
        {
            public string food;
            private string _Dname;
    
            public string Dname
            {
                get { return _Dname; }
                set { _Dname = value; }
            }
            public void shengming()
            {
                Console.WriteLine("动物是人类的朋友");
            }
        }
    }

    运行结果

    3.方法的重载和隐藏

    重载:子类有父类的同名函数,输入参数不同

    隐藏:当子类与父类拥有完全一样的方法时,称“子类隐藏了父类的同名方法”。

    当子类和父类的方法完全相同时,调用的时候取决于声明的类型(=号左面),而不是实例化的类型。

    如上面的例子,调用的方法。

    4.方法的重写

    方法的重写:通过子类转换成父类后,通过父类调用函数,执行的是子类的函数,这就是函数的重写

    父类变量引用的是子类对象,则调用的是子类定义的方法;父类变量引用的是父类对象,
    则调用的是父类定义的方法。也就是说调用哪个方法取决于父类变量引用的真实对象类型,而与父类变量无关。

    父类方法关键词virtual 子类方法关键词override

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class Program
        {
            static void Main(string[] args)
            {
                dongwu da = new dongwu();
                
                da.shengming();
                shengwu sa = da;
               
                sa.shengming();
    
                shengwu ssa = new shengwu();
                ssa.shengming();
    
                dongwu za = (dongwu)sa;//再转换为dongwu类
                
                za.shengming();
                Console.ReadLine();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class shengwu
        {
            public string zhonglei;
            private string _Name;
    
            public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
            public virtual void shengming()
            {
                Console.WriteLine("生物是生命体");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 博客整理实例
    {
        class dongwu:shengwu //继承父类shengwu
        {
            public string food;
            private string _Dname;
    
            public string Dname
            {
                get { return _Dname; }
                set { _Dname = value; }
            }
            public override void shengming()
            {
                Console.WriteLine("动物是人类的朋友");
            }
        }
    }

    运行结果

  • 相关阅读:
    RocketMQ性能压测分析(转载)
    利用Fiddler或Charles进行mock数据
    Linux中buffer/cache,swap,虚拟内存和page ++
    AVA 8 :从永久区(PermGen)到元空间(Metaspace)
    jstat 监控调整GC很好用
    Jmeter常用函数
    关于Oracle新建表空间,添加用户及新建表数据
    关于Oracle增加表空间大小方法
    关于手动删除Oracle数据数据,导致Oracle无法连接处理过程
    解决jquery easyui combotree(下拉树)点击文字无法展开下级菜单的解决方法
  • 原文地址:https://www.cnblogs.com/happinesshappy/p/4526482.html
Copyright © 2020-2023  润新知