TECH I.S.

C#の抽象化


抽象クラスとメソッド

データ抽象化は、特定の詳細を隠し、重要な情報のみをユーザーに表示するプロセスです。抽象化は、次のいずれかで実現できます。抽象クラスまたはインターフェイス(これについては、次の章で詳しく説明します)。

abstractキーワードは、クラスとメソッドに使用されます。
  • 抽象クラス:オブジェクトの作成に使用できない制限付きクラスです (アクセスするには、別のクラスから継承する必要があります)。
  • 抽象メソッド:抽象クラスでのみ使用でき、本体はありません。本体は派生クラス (継承元)。

抽象クラスには、抽象メソッドと通常のメソッドの両方を含めることができます。

{.language-java .techis-white}
abstract class Animal
{
  public abstract void animalSound();
  public void sleep()
{
    Console.WriteLine("Zzz");
  }
}

上記の例から、Animalクラスのオブジェクトを作成することはできません。

{.language-csharp .techis-white .techis-border-red}
Animal myObj = new Animal(); // Will generate an error (Cannot create an instance of the abstract class or interface 'Animal')

抽象クラスにアクセスするには、別のクラスから継承する必要があります。ポリモーフィズムの章で使用した、Animalクラスを抽象クラスに変換しましょう。

継承の章で、クラスから継承するには:記号を使用し、基本クラスのメソッドをオーバーライドするにはoverrideキーワードを使用することを思い出して下さい。

{.language-csharp .techis-white}
// Abstract class
abstract class Animal
{
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep()
{
Console.WriteLine("Zzz");
}
}
// Derived class (inherit from Animal)
class Pig : Animal
{
public override void animalSound()
{
// The body of animalSound() is provided here
Console.WriteLine("The pig says: wee wee");
}
}
class Program
{
static void Main(string[] args)
{
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound(); // Call the abstract method
myPig.sleep(); // Call the regular method
}
}

抽象クラスとメソッドを使用する理由と時期

セキュリティを確保するには、特定の詳細を非表示にして、オブジェクトの重要な詳細のみを表示します。

注:抽象化は、インターフェースを使用して実現することも出来ます。これについては、次の章で詳しく説明します。


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細