C# 抽象クラス (抽象)

抽象クラス:
a. 定義:
·クラスは同じ特性と動作を持つ抽象化であり、抽象クラス (クラスの前に抽象を追加) は動作の具体的な詳細を指摘せず、そのサブクラスは対応する動作を実装します。
通常のクラスの前にabstractキーワードを追加して、抽象クラスにします。
抽象メソッドを含むクラスを抽象クラスと呼びます。
b. 抽象メソッド:
宣言するだけで実装しないメソッドを抽象メソッドと呼び、abstract キーワードで宣言します。
c. 形式:
アクセス修飾子抽象メソッド戻り値の型メソッド名 (パラメータ リスト);
例: public abstract void Fly();
d. 機能:
抽象クラス:
·抽象クラスのインスタンスを作成できません。
· 抽象クラスは、sealed として宣言できません。(C# は、他のクラスがこのクラスから継承するのを防ぐシール修飾子を提供します。)
抽象メソッド:
·抽象メソッドにはメソッド本体がありません
·抽象メソッドは抽象クラスにある必要があります
·抽象メソッドはサブクラスに実装されている必要があります。 1. Bird、Person、Fish クラスを設計する Bird クラスは FlyAble 抽象クラスを実装し、Person クラスは TalkAble 抽象クラスを実装し

Fish クラスは SwimAble 抽象クラスを実装し、情報を出力します。

抽象クラス

//抽象方法必须要在抽象类当中
//(类中有抽象方法,那必定是抽象类)
abstract class FlyAble
{
    
    
//声明方法(抽象方法)
//抽象方法默认为虚方法,但不能出现virtual
 public abstract void Fly();       
}
abstract class TalkAble
{
    
    
 public abstract void Talk();
}
abstract class SwimAble
{
    
    
 public abstract void Swim();
}

サブクラス

//父类的抽象方法,子类必须都要实现
class Bird : FlyAble
 {
    
    
  public override void Fly()
  {
    
    
   Console.WriteLine("小鸟在飞");
  }
 }
class Person : TalkAble
 {
    
    
  public override void Talk()
  {
    
    
   Console.WriteLine("人在交谈");
  }
 }
 class Fish : SwimAble
 {
    
    
  public override void Swim()
   {
    
    
    Console.WriteLine("小鱼游泳");
   }
 }

テストパート

static void Main(string[] args)
{
    
    
  //抽象类不能被实例化,所以向上转型
  FlyAble f = new Bird();
  f.Fly();
  TalkAble t = new Person();
  t.Talk();
  SwimAble s = new Fish();
  s.Swim();
}

注:
private、static、および final は抽象メソッドには表示できません (抽象メソッドが書き換えられなくなります)
final: 変更されたクラスは eunuch クラスです. 名前が示すように、サブクラスはありません.

おすすめ

転載: blog.csdn.net/weixin_44706943/article/details/126116600