C# 抽象类和方法
提示
- 抽象类的特点:C# 中的抽象类用
abstract
关键字定义,不能直接实例化,包含抽象和非抽象方法。 - 继承抽象类:抽象类必须通过子类继承实现,子类需具体实现抽象方法。
- 抽象的意义:抽象是面向对象编程的核心,用于隐藏细节,仅展示必要信息,如通过
get
和set
访问器实现。
抽象类
在 C# 中,我们不能创建抽象类的对象。我们使用 abstract
关键字来创建一个抽象类。例如,
// 创建一个抽象类
abstract class Language {
// 字段和方法
}
...
// 尝试创建 Language 对象
// 抛出错误
Language obj = new Language();
抽象类可以同时拥有抽象方法(没有主体的方法)和非抽象方法(有主体的方法)。例如,
abstract class Language {
// 抽象方法
public abstract void display1();
// 非抽象方法
public void display2() {
Console.WriteLine("非抽象方法");
}
}
在继续之前,确保了解 C# 继承 的相关知识。
继承抽象类
由于我们不能创建抽象类的对象,我们必须从它派生出一个子类。这样我们就可以使用派生类的对象来访问抽象类的成员。例如,
using System;
namespace AbstractClass {
abstract class Language {
// 非抽象方法
public void display() {
Console.WriteLine("非抽象方法");
}
}
// 继承自抽象类
class Program : Language {
static void Main (string [] args) {
// Program 类的对象
Program obj = new Program();
// 访问抽象类的方法
obj.display();
Console.ReadLine();
}
}
}
输出
非抽象方法
在上面的示例中,我们创建了一个名为 Language
的抽象类。该类包含一个非抽象方法 display()
。
我们创建了继承抽象类的 Program
类。注意这个语句,
obj.display();