zoukankan      html  css  js  c++  java
  • 大白话之继承

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace inherit
    {
        class Program
        {
            static void Main(string[] args)
            {
                Animal a = new zebra();
                a.move(); //只能识别老版本的方法
                //zebra b = new zebra();
                //b.move();
                Console.ReadLine();
            }
        }
        public class Animal
        {
            protected string _skincolor;
            protected int _heiht;
            protected int _weight;
            public virtual void move()
            {
                Console.WriteLine("动物的移动方法运行");
            }
        }
        public class horse : Animal
        {
            private new string _skincolor;
            public string Skincolor
            {
                get
                {
                    return _skincolor;
                }
                set
                {
                    this._skincolor = value;
                }
            }
            public override void move()
            {
                Console.WriteLine("白龙马可以跑动");
            }
            //public void ShowHorse()
            //{
            //    Console.WriteLine("可以展示马了{0}", this._skincolor);
            //}
        }
        public class zebra : horse
        {
            public override void move()
            {
                Console.WriteLine("斑马可以跑动");
            }
        }
    }

    类内的元数据会被拷贝到子类中
    基类的数据会成为子类的成员 但要受到权限限制
    元数据描述数据的数据 基类的代码都可以被子类用
    private 的数据 也将被继承 但是不能用  静态的也不行
    子类 -- 继承基类的类
    支持多层继承 但不支持多重继承
    子类的实例必然包含父类定义的
    我是子类我优先  呵呵
    如果试图子类中显示用父类的数据,要用 new 来声明是用的子类的 而不是基类的
    父类引用只能用老版本 不识别新版本 Animal a=new horse() 中a是负引 不能识别horse类中new 来重新声明的字段或者方法
    object的tostring()方法输出的是对应的类名 要用 public override string ToString() 来对其进行重写
    引用控制着有那些成员可以被识别 而具体执行取决于那个实例 先检查方法能否调用后执行

  • 相关阅读:
    Chrome禁用缓存
    国内阿里Maven仓库镜像Maven配置文件Maven仓库速度快
    spring boot 之热部署
    Spring Boot的Maven插件Spring Boot Maven plugin详解
    在Extjs 的 TabPanel在 title标题栏上加按扭button
    Entity Framework 基于Oracle的code first 问题汇总
    面向对象设计原则
    Asp.Net MVC 缓存设计
    Asp.Net MVC 身份认证
    Asp.Net MVC 请求原理分析
  • 原文地址:https://www.cnblogs.com/ivy/p/1214799.html
Copyright © 2011-2022 走看看