Виртуальный метод имеет тело, а аннотация - это просто подпись ????
Точно. Дело в том, что виртуальные методы могут быть переопределены в производных классах, тогда как абстрактные методы должны быть переопределены . Точно так же класс, который имеет хотя бы один абстрактный метод, должен сам быть абстрактным, т.е. он не может быть создан напрямую, поскольку его реализация (частично) отсутствует.
Наконец, каждый абстрактный метод также по умолчанию виртуален. virtual
в основном означает, что метод отправляется во время выполнения правильному классу, и поэтому его можно переопределить для реализации полиморфизма времени выполнения.
Я согласен с обоими ответами здесь, поэтому я не буду их повторять. Но вот ссылка, которая может помочь.
10.6.3 Виртуальные, запечатанные, замещающие и абстрактные методы доступа
Абстрактное означает, что вы ДОЛЖНЫ переопределить его. Виртуальный означает, что вы МОЖЕТЕ отменить его. Более менее.