我有一个关于多态性的问题。这里有3个简单的类:
public class Book
{
public string Name;
}
public class Encyclopedia : Book
{
public int Volume;
}
public class Library
{
public Book[] Books;
}
我像这样实例化的库类:
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 类型填充。为什么这可能?我可以理解,如果 Encyclopedia 类型的数组由它的一个基类填充,是否是另一种方式。也许我把它与之前关于基类和子类之间转换的问题混淆了。