类的定义:
[访问修饰符] class 类名
{
类的主体部分
}
注:c#中只能派生一个类,不支持多继承。关于访问修饰符,C#提供四种访问修饰符。
private:类中的成员变量和函数只能在自己的这个类中使用。-------------------------------一个人用。
protected:类中的成员变量和函数只能在自己的类和自己的派生类中使用。----------------父子同用。
public:类中的成员变量和函数可以在别的类中使用。----------------------------------------大家公用。
internal:类中的成员变量和函数在整个项目中都可以使用。---------------------本项目内部大家公用。
1.特别的,如果类的声明时如果没有指明访问修饰符,则默认这个类为internal(内部型),类中的变量和函数默认为private(私有)。------常见的错误是由于没有设置好修饰符的原因。因为默认的private是私有型的,只有自己可以访问。
2.命名空间中的类不能声明为private和protected.否则外部类无法访问这个类,编译的时候将会出错。
例子:program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace elitor_inherient { /* *********************************************************************************** * * 定义一个类CPerson * *********************************************************************************** */ class CPerson //默认CPerson为internal型,类中的变量和函数在此工程中均可用。 { string name; //默认为private int age;//默认为private void GetNameAge()//默认为private { Console.WriteLine("请输入姓名:"); name = Console.ReadLine(); Console.WriteLine("请输入年龄"); age = int.Parse(Console.ReadLine()); } void ShowNameAge()//默认为private { Console.WriteLine("姓名: {0}",name); Console.WriteLine("年龄: {0}",age); } public CPerson(string name1, int age1)//默认为private,改为protected { age = age1; name = name1; Console.WriteLine("姓名: {0}",name1); Console.WriteLine("年龄: {0}",age1); } } /* *********************************************************************************** * * 定义一个类CStudent,继承自CPerson * *********************************************************************************** */ class CStudent : CPerson { public CStudent(string name1, int age1, string school) : base(name1, age1)//默认为private,调用基类的构造函数用base关键字, //说明:如果基类的构造函数没有设置为protected,或者public则不能调用。 { Console.WriteLine("学校: {0}",school); } } /* *********************************************************************************** * * 定义一个另外一个类 ,包含程序入口函数Main() * *********************************************************************************** */ class Program { static void Main(string[] args) { Console.WriteLine("----------显示信息:-----------"); CStudent stu = new CStudent("elitor",24,"HDU"); Console.ReadLine(); } } }
运行结果: