在本文中,我们将学习 C# 类。类是所创建对象的蓝图。在实时场景中,我们假设 Car 是一个类。所以汽车有一定的特征,比如形状、速度、内饰、颜色等等。 因此,许多公司生产满足这些要求的汽车。例如,马鲁蒂、现代的每辆车都有这些对象。我们可以定义一个名为 car 的类,并根据汽车的特性创建对象。类似地,在 OOP 或面向对象的程序中,类具有许多属性,例如事件、方法、字段等。类使程序员能够根据自己的要求创建自定义类型的对象。
语法:
我们可以使用名为 the class 的关键字来定义类,后跟我们将决定的类的名称,并用一对花括号括起来。
Class Test { }
以下示例展示了如何实现它
抽象类
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public abstract class Animals { public abstract void aml (); // abstract class method } public class Cat : Animals // inheritance { public override void aml() { Console.WriteLine("This is first animal"); } } public class Dog : Animals // another class inheritance { public override void aml() { Console.WriteLine("This is second animal"); } } public class main_method { public static void Main() // main method { Animals a; a = new Cat(); a.aml(); a = new Dog(); a.aml(); Console.ReadLine(); } }
说明:在上面的例子中,有一个抽象类Animals,具有抽象方法aml()。动物类是子类“猫”和另一个子类“狗”中固有的。在 main 方法中,“a”是无法实例化的 Animals 类的对象。抽象类在继承时使用,其中包含构造函数和析构函数。 Override关键字是抽象方法之前必须的,用于继承子类。
输出:
密封等级
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; public class Animal { public virtual void sleep() { Console.WriteLine("Animals are sleeping"); } public virtual void eat() { Console.WriteLine("Animals are eating"); } } public class Cat : Animal // inheritance { public override void sleep() { Console.WriteLine("Cat is sleeping"); } public sealed override void eat() // sealed method { Console.WriteLine("Cat is eating"); } } public class Dog : Cat // inheritance { public override void Sleep() { Console.WriteLine("Sleeping"); } public override void eat() { Console.WriteLine("Eating"); } } public class TestSealed { public static void Main() // main method { Dog d = new Dog(); d.eat(); d.fly(); } }
说明:在上面的示例中,有一个密封方法,用于防止其他类被继承。因此,在这种情况下,当我们尝试继承密封类时,编译器会读取密封关键字并给出错误。因此它不能被覆盖。
输出:
静态类
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Office { public static string Name; // static fields public static string Location; static Office() // constructor { Name = "Microsoft"; Location = "Hyderabad"; } } class Program { static void Main(string[] args) { Console.WriteLine(Office.Name); Console.WriteLine(Office.Location); Console.Read(); } }
说明: 在上面的例子中,有一个静态类,静态类使用了 static 关键字,这使得该类不可实例化。它由静态成员的名称和位置组成。在 main 方法中,我们正在访问类 Office 的静态数据成员。无法创建静态类的对象。静态类不能从任何其他类继承。
输出:
部分课程
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; // partial class1.cs public partial class Class1 { private string EmpName; private int EmpId; public Class1(string a, int t) { this.EmpName = a; this.EmpId = t; } } // partial class2.cs public partial class Class1 { public void Display() { Console.WriteLine("Employee name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } } public class Class { private string EmpName; private int EmpId; public Class(string a, int t) { this.EmpName = a; this.EmpId = t; } public void Display() { Console.WriteLine("Employees name is : " + EmpName); Console.WriteLine("Employee Id is : " + EmpId); } }
说明:在上面的例子中,实现了分部类。当我们上课时间较长时可以使用它。因此,为了简化代码,我们可以定义多个文件。 Partial 是与这些类型的类一起使用的关键字。因此它可以被分割成多个文件,其中包含一个使用partial关键字的方法。在此部分 class1.cs 和部分 class2.cs 被编译器合并为单个文件。
输出:
注释: 访问说明符有助于访问成员以及类本身。为了访问任何类成员,我们应该使用点运算符。点运算符有助于将对象的名称链接到成员的名称。我们可以在类内部定义方法、构造函数、析构函数。
以上是C# 类的详细内容。更多信息请关注PHP中文网其他相关文章!