C# public protected private 关键字结合继承举例说明

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

namespace demo
{
    #region 代码说明

    class Program
    {
        static void Main(string[] args)
        {
            //实例化派生类
            DerivedClass DerivedClass_Object = new DerivedClass();
            DerivedClass_Object.BaseClassTest();    
        }
    }

    #endregion

    #region 自定义基类

    class BaseClass
    {
        #region 成员变量

        //基类成员或者方法用public修饰,派生类和再派生类的构造函数和类成员方法内均可见
        public int member1 = 1;

        //基类成员或者方法用protected修饰,派生类和再派生类的构造函数和类成员方法内均可见
        //因为它受保护级别限制
        protected int member2 = 2;

        //基类成员或者方法用private修饰,派生类和再派生类均不可见
        //此类变量常被类内方法使用,基类成员函数可以访问
        private int member3 = 3;

        #endregion

        #region 构造函数(不带参数和带参数两个,也就是我们说的重载)

        //构造函数1
        public BaseClass()
        {
        }

        //构造函数2
        public BaseClass(int var1)
        {
            this.member1 = var1;
        }

        #endregion

        #region 成员方法

        public void BaseClassTest() //总结注释
        {
            Console.WriteLine("实例化对象加点号看提示!!");
        }
    }
        #endregion

    #endregion

    #region  派生类

    class DerivedClass : BaseClass
    {
        //派生类成员变量
        public int d_member = 0;


        // 派生类无参数构造函数
        public DerivedClass()
        {
           
        }

        /// <summary>
        /// 继承基类BaseClass构造函数
        /// </summary>
        /// <param name="var1"></param>
        /// <param name="var2"></param>
        public DerivedClass(int var1, int var2)
            : base(var1)
        {
            this.d_member = var2;
        }

        //派生类成员方法
        public void DerivedClassTest()
        {
            Console.WriteLine("派生类成员方法!!");
        }
    }

    #endregion

    #region 派生类

    class ReDerivedClass : DerivedClass
    {
        //再派生类成员变量
        public int r_member = 0;

        //再派生类无参数构造函数
        public ReDerivedClass()
        {
        }

        /// <summary>
        /// 再派生类带参数构造函数
        /// </summary>
        /// <param name="var1"></param>
        /// <param name="var2"></param>
        /// <param name="var3"></param>
        public ReDerivedClass(int var1, int var2, int var3)
            : base(var1, var2)
        {
            this.r_member = var3;
        }

        //再派生类成员方法
        public void ReDerivedClassTest()
        {
            Console.WriteLine("再派生类成员方法!!");
        }
    }

    #endregion
}

猜你喜欢

转载自blog.csdn.net/u012699097/article/details/81084347