Виртуальные классы C ++ эквивалентны абстрактным классам в Java. Разница от интерфейсов:
1. Подкласс может наследовать только один абстрактный класс (виртуальный класс), но может реализовать несколько интерфейсов
2. Абстрактный класс может иметь метод конструктора, но интерфейс не имеет метода конструктора.
3. Методы в абстрактном классе не обязательно являются абстрактными методами, то есть методы в них могут иметь реализации (с помощью методов). Методы в интерфейсе являются абстрактными методами, и не могут быть методов, только объявления.
4. Абстрактный класс может быть публичным, частным, защищенным и дефолтным, а интерфейс имеет только публичный
5. Методы в абстрактном классе могут быть публичными, частными, защищенными и дефолтными. Методы в интерфейсе могут быть только публичными и дефолтными.
То же самое: ни один из них не может быть создан.
Дополнительное примечание: интерфейсы - это особый тип абстрактного класса, более абстрактный класс, который вы можете понять таким образом. Абстрактный класс - это неполный класс, и интерфейс определяет только некоторые функции. Например, используйте абстрактные классы и интерфейсы для описания «собак». Абстрактные классы добавляют абстрактный до общих классов и говорят: «Свиньи могут бегать с конечностями, свинья могут бежать так или иное ...», а интерфейс может сказать только: «Свиньи могут работать, и то, что они используют для запуска, является подклассом».
Приведенная выше статья кратко обсуждает сходства и различия между интерфейсами Java и виртуальными классами C ++. Это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.