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
}