C#自学——抽象类(abstract)

C#自学——抽象类(abstract)

编码文章call10242025-06-21 18:01:585A+A-

抽象类和普通类的区别在于不能实例化,抽象类能写抽象方法,也能写普通的方法、虚方法。

抽象方法 类似 接口 里面的方法,所以抽象方法不可以实现,需要用子类重写(override),接口不需要重写;抽象类可以直接实现,也可以由子类实现

子类继承的时候,抽象类必须放在接口类的前面

// 抽象类需要写 class 关键词,接口不需要
abstract class Animal
{
  // 抽象类是接口和继承的集合
  public abstract void Study();
  
  public virtual void Run()
  {
    Console.WriteLine("抽象类 虚方法 Run");
  }

  public void Eat()
  {
    Console.WriteLine("抽象类 普通方法 Eat");
  }
}

interface IAni
{
  void Sleep();
}

// 子类:抽象类, 接口 顺序不能搞错了
class Dog : Animal, IAni
{
  // 接口在可以子类直接实现
  public void Sleep()
  {
    Console.WriteLine("接口 Sleep");
  }
  
	// 抽象方法需要在子类重写
  public override void Study()
  {
    Console.WriteLine("抽象类 抽象方法 Study");
  }
}

class Print
{
  static void Main()
  {
    Dog dog = new Dog();
    dog.Sleep();
    dog.Study();
    dog.Eat();
    dog.Run();
  }
}

输出:

抽象类 抽象方法 Study
抽象类 普通方法 Eat
抽象类 虚方法 Run
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4