Las clases virtuales de C ++ son equivalentes a las clases abstractas en Java. La diferencia de las interfaces es:
1. Una subclase solo puede heredar una clase abstracta (clase virtual), pero puede implementar múltiples interfaces
2. Una clase abstracta puede tener un método de constructor, pero una interfaz no tiene un método de constructor.
3. Los métodos en una clase abstracta no son necesariamente métodos abstractos, es decir, los métodos en ellos pueden tener implementaciones (con cuerpos de métodos). Los métodos en la interfaz son métodos abstractos, y no puede haber cuerpos de métodos, solo declaraciones
4. Una clase abstracta puede ser pública, privada, protegida y predeterminada, y la interfaz solo tiene público
5. Los métodos en una clase abstracta pueden ser públicos, privados, protegidos y predeterminados. Los métodos en la interfaz solo pueden ser públicos y predeterminados.
Lo mismo es: ninguno puede ser instanciado.
Nota adicional: las interfaces son un tipo especial de clase abstracta, una clase más abstracta, que puede comprender de esta manera. Una clase abstracta es una clase incompleta, y la interfaz solo define algunas funciones. Por ejemplo, use clases e interfaces abstractas para describir "perros". Las clases abstractas agregan abstrigto antes de las clases generales y dicen: "Los cerdos pueden funcionar con extremidades, los cerdos pueden funcionar así o aquello ...", y la interfaz solo puede decir: "Los cerdos pueden funcionar, y lo que usan para ejecutar es una subclase".
El artículo anterior analiza brevemente las similitudes y diferencias entre las interfaces Java y las clases virtuales de C ++. Este es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.