Повторно представьте говорит компилятору, что Вы хотите назвать код определенным в этом методе как точка входа для этого класса и его потомков, независимо от других методов с тем же именем в ancestors’ цепочке.
Создание TDescendant.MyMethod
создало бы потенциальный беспорядок для TDescendants в добавлении другого метода с тем же именем, о котором компилятор предупреждает Вас.
Повторно представляют, снимает неоднозначность этого и говорит компилятору, что Вы знаете который использовать.
ADescendant.MyMethod
вызовы TDescendant один, (ADescendant as TAncestor).MyMethod
вызовы TAncestor один. Всегда! Никакой confusion†¦. Счастливый компилятор!
Это верно, хотите ли Вы, чтобы порожденный метод был виртуальным или нет: в обоих случаях Вы хотите повредить естественную связь виртуальной цепочки. И это не препятствует тому, чтобы Вы назвали наследованный код из нового метода.
Установка этого флага записывает все сборки мусора, созданные JVM, в файл журнала (или стандартный вывод, но тогда это менее полезно), и их можно проанализировать с помощью таких инструментов, как упомянутые здесь . Используя эту информацию, вы можете точно настроить конфигурацию сборки мусора.
Вместо Sun используйте -Xloggc: gc.log
для входа в файл, -verbose: gc
также является обычным переключателем для этого .
Также убедитесь, что -XX: + PrintGCDetails
и -XX: + PrintGCTimeStamps
(обратите внимание на знак плюс +). Переключатель отметки времени избыточен, но его можно использовать.