Преобразование дочернего элемента в тип родительского не меняет функции, которые будут вызываться, потому что они были переопределены в объекте.Это часть красоты наследования (полиморфизм).
В BaseMethod вы вызываете base.Method, который является способом получения доступа к родительской функции (если вам это нужно), но если у вас есть массивтип Shape, и в нем разные подклассы формы, вы хотите, чтобы метод .Draw () вызывал подкласс, а не метод суперкласса (по умолчанию).