ポリモーフィズムについて質問があります。以下に 3 つの単純なクラスを示します。
public class Book
{
public string Name;
}
public class Encyclopedia : Book
{
public int Volume;
}
public class Library
{
public Book[] Books;
}
Library クラスは、次のようにインスタンス化しました。
private void btnMakeLibrary_Click(object sender, EventArgs e)
{
Book[] books = new Book[3];
books[0] = new Book();
books[0].Name = "Book Name 1";
books[1] = new Book();
books[1].Name = "Book Name 2";
books[2] = new Encyclopedia();
books[2].Name = "Encyclopedia 1";
((Encyclopedia)books[2]).Volume = 10;
Library library = new Library();
library.Books = books;
}
Book 型で構成される配列には、Encyclopedia 型が入力されます。なぜこれが可能なのですか?エンサイクロペディア型の配列がその基本クラスの 1 つによって取り込まれた場所が逆であったかどうかは理解できました。基本クラスと子クラスの間のキャストに関する以前の質問と混同している可能性があります。