MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

C#自学——抽象类(abstract) c#中抽象类的主要作用

2024-12-25 12:02 huorong 精选文章 6 ℃ 0 评论

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

抽象方法 类似 接口 里面的方法,所以抽象方法不可以实现,需要用子类重写(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

Tags:abstract class

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言