• 继承


    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("动物是人类的朋友");
            }
        }
    }

    运行结果

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/happinesshappy/p/4526482.html
Copyright © 2020-2023  润新知