继承

继承:
一、什么是继承
概念:父亲有的东西,并且允许继承,所有孩子就都会有

一个父类可以拥有多个子类
一个子类只能拥有一个父类


二、父子之间的转换
子类可以转换成父类,这个父类只能转换成之前的子类

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

namespace 继承
{
    class Program
    {
        static void Main(string[] args)
        {
            Fly f = new Fly(); //实例化
            f.Fling();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承
{
    class Fly
    {
        /// <summary>
        /// 飞行
        /// </summary>
        public void Fling()
        {
            Console.WriteLine("我会飞行!");
        }

        private string _chibang;

        public string Chibang
        {
            get { return _chibang; }
            set { _chibang = value; }
        }

    }
}

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

namespace 继承
{
    class Plane : Fly  // plane 继承fly  子类继承父类  一个父类可以有多个子类 但是子类只能有一个父类
    {
        public void Chi()
        {
            Console.WriteLine("汽油和柴油");
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 继承
{
    class Bird : Fly   // bird 继承fly 子类继承父类   一个父类可以有多个子类 但是子类只能有一个父类
    {
        public void Chi()
        {
            Console.WriteLine("虫子和谷子");
        }
    }
}
            f.Chibang = "用来飞的,什么样都行,只要能飞";

            Bird b = new Bird();
            b.Fling();
            b.Chibang = "羽毛的";
            b.Chi();
            Plane p = new Plane();
            p.Fling();
            p.Chibang = "合金的";
            p.Chi();
            ////
            //// 子类可以转换成父类,这个父类只能转换成之前的子类
            //// 子类和子类之间没办法转换
            //// 父类可以转化成子类
            /////
            Fly f2 = (Fly)b;
            f2.Fling();
            Bird b2 = (Bird)f2;
            b2.Chi();
            Plane p2 = (Plane)f2;
            p2.Chi();
            Bird b3 = new Bird();
            Fly f3 = (Fly)b3;





            Console.ReadLine();
        }
    }
}

访问修饰符:
public : 公共的,引用命名空间即可随意访问。
private : 私有的,只有在声明它的类和结构中才可以访问。
Internal : 内部的,同一个程序集中所有的类都可以访问,程序集就是命名空间。
Protected : 受保护的,只能在他自己和自己的子类中才能访问。

原文地址:https://www.cnblogs.com/zhangdemin/p/5600874.html