zoukankan      html  css  js  c++  java
  • 【c# 学习笔记】继承

      在c#中,一个类可以继承另外一个已有的类(密封类除外),被继承的类称为基类(或父类),继承的类称为派生类(或子类),子类将获得基类

    除构造函数和析构函数以外的所有成员。此外,静态类是密封的,也不能被继承。

      例如,牛、羊、马等都是动物,但它们是不同种类的动物,除了具有动物的共同性外,它们还具有各自的特点,如不同的用途、不同的发声方式等。

    我们可以把动物定义为牛、羊、马的父类,这样子类不但继承了基类除构造函数和析构函数以外的所有成员,还可以添加自己特有的成员。

      通过继承,程序可实现对父类代码的复用。因为子类可继承父类的所有成员,父类中定义的代码便不需要在子类中进行重复定义了。

      c#与c++不同,c#仅支持派生于一个基类,而c++则支持多重继承。但c#可以继承多个接口,如下演示继承的使用方法:

        public class Animal
        {
            private int _age;
    
            public int Age
            {
                get { return _age; }
                set
                {
                    //这里假设牛的寿命为10年。
    
                    if(value <0 ||value >10)
                    {
                        throw (new ArgumentOutOfRangeException("AgeIntPropery", value, "年龄必须在0-10之间"));
                       
                    }
                    _age = value;
                }
            }
    
            //马(子类)
    
            public class Horse:Animal
            {
    
            }
    
            //羊 (子类)
            public class Sheep:Animal
            {
    
            }
    
        }
            static void Main(string[] args)
            {
    
                Horse horse = new Horse();
                horse.Age = 2;
                Console.WriteLine("马的年龄为:{0}", horse.Age);
    
                Sheep sheep = new Sheep();
                sheep.Age = 1;
                Console.WriteLine("羊的年龄为:{0}", sheep.Age);
    
                Console.Read();
            }

      如上,虽然各个子类并没有定义Age属性,但由于它们都继承自基类Animal,基类中又定义了Age属性,所以子类也就继承了父类中的Age。通过继承,避

    免了在子类中重复定义Age,从而达到代码复用的目的。

      注:子类并不能对父类的私有成员进行直接访问,它只可对保护成员和公有成员进行访问。如果把上面代码中的Age属性定义为私有属性,Main函数就不能

    对该属性进行赋值操作了。私有成员也会被子类继承,但子类不能直接访问私有成员,子类可以通过调用公有或保护方法来间接地对私有成员进行访问。

  • 相关阅读:
    Exchange 2013与 Office Web Apps 整合
    SharePoint2013 以其他用户登录和修改AD域用户密码 功能
    sharepoint 2010 自定义页面布局
    sharepoint 2010 记录管理 对象模型
    SharePoint2010 对象模型 关联列表
    在SharePoint Server 2010中更改“我的网站”
    xenapp 6.5 客户端插件第一次安装总是跳到官网
    如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件
    在Win7 Hyper-v虚拟机中挂接真实机的声卡
    win8 中如何删除 共享文件夹 用户名和密码
  • 原文地址:https://www.cnblogs.com/xiaoyehack/p/9209450.html
Copyright © 2011-2022 走看看