次の例では、C# を使用しています。
抽象クラスを作成し、Base_Collection
そこから他のクラスを派生させます ( Book
、Movie
、Game
)。ただし、コンパイラ エラーを発生させずに、これらの新しい子クラスに使用できる新しいメソッドを追加する方法がわかりません。
namespace polymorphism_test_01
{
abstract class Base_Collection
{
public int id = 0;
public string title = "";
public Base_Collection() { }
}
}
namespace polymorphism_test_01
{
class Book : Base_Collection
{
public Book() { }
public override void Read_Book() { }
}
}
namespace polymorphism_test_01
{
class Game : Base_Collection
{
public Game() { }
public void Play_Game() { }
}
}
namespace polymorphism_test_01
{
class Movie : Base_Collection
{
public Movie() { }
public void Watch_Movie() { }
}
}
次のスニペットでは呼び出しbook.Read_Book()
が機能せず、コンパイラはエラーを出力します。
namespace polymorphism_test_01
{
class Program
{
public static void Main(string[] args)
{
Base_Collection book = new Book();
book.title = "The Dark Tower";
book.Read_Book();
Console.WriteLine(book.title);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}