C#特性: 类

Posted ARoad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#特性: 类相关的知识,希望对你有一定的参考价值。

1、使用class 关键字可以声明类

public class MyClass
{
  //可在内部申明一些字段、方法或属性
}

 

2、类(Class) 是引用类型,默认为null,可用new创建

 MyClass myClass1; //默认是 null
 MyClass myClass2 = new MyClass(); //可用 new 创建一个对象
 MyClass myClass3 = myClass2; //也可直接将已创建的对象,直接赋值到当前对象

 

3、类可以继承,被继承的类称为基类(或父类),当前类称为子类(或派生类),通过在派生类后加 冒号 : 和 基类名称实现

/// <summary>
/// NextClass为基类MyClass的派生类
/// </summary>
public class NextClass : MyClass
{
  //NextClass 可以继承使用MyClass 中的字段、方法和属性
  //也可以在NextClass内部创建新的字段、方法和属性
}

注意:被 sealed 修饰的类,不能用于继承 

 

4、类可以申明为 abstract (抽象类)抽象类包含抽象方法,抽象方法包含签名定义但不包含实现。 抽象类不能实例化。 只能通过可实现抽象方法的派生类来使用该类。

/// <summary>
/// 抽象类 - Animal
/// </summary>
public abstract class Animal
{
	/// <summary>
	/// 申明一个抽象方法,不需要具体实现内容
	/// </summary>
	public abstract void ShowName();

	/// <summary>
	/// 申明一个虚方法,需要具体实现,可以在派生类中重写
	/// </summary>
	public virtual void ShowFood()
	{
		Console.WriteLine("this is my food");
	}
}

  

/// <summary>
/// 派生类 - Dog
/// </summary>
public class Dog : Animal
{
	/// <summary>
	/// 在派生类中实现方法内容
	/// </summary>
	public override void ShowName()
	{
		Console.WriteLine("this is a dog");
	}

	/// <summary>
	/// 在派生类帐重载方法
	/// </summary>
	public override void ShowFood()
	{
		base.ShowFood(); //可以通过调用base保留基类的处理
		Console.WriteLine("I eat meat");
	}
}

 

5、类可以通过修饰符 partial 进行拆分

//第一部分,申明一个ShowName的方法
public partial class Monkey
{
	public void ShowName()
	{
		Console.WriteLine("this is a monkey");
	}
}

 

//第二部分,申明一个ShowFood的方法
public partial class Monkey
{
	public void ShowFood()
	{
		Console.WriteLine("I eat banana");
	}
}

 

//实际使用的时候,两个方法都可以进行调用
Monkey monkey = new Monkey();
monkey.ShowName(); 
monkey.ShowFood();

 

以上是关于C#特性: 类的主要内容,如果未能解决你的问题,请参考以下文章

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?

C# 求救。。关于不是特性类

是否可以动态编译和执行 C# 代码片段?

C#常用代码片段备忘

C#语言特性及发展史

优化 C# 代码片段、ObservableCollection 和 AddRange