As classes virtuais de C ++ são equivalentes a classes abstratas em Java. A diferença das interfaces é:
1. Uma subclasse pode herdar apenas uma classe abstrata (classe virtual), mas pode implementar várias interfaces
2. Uma classe abstrata pode ter um método construtor, mas uma interface não possui um método construtor.
3. Os métodos em uma classe abstrata não são necessariamente métodos abstratos, ou seja, os métodos neles podem ter implementações (com órgãos de métodos). Os métodos na interface são métodos abstratos e não pode haver órgãos de métodos, apenas declarações
4. Uma classe abstrata pode ser pública, privada, protegida e padrão, e a interface só tem público
5. Os métodos em uma classe abstrata podem ser públicos, privados, protegidos e inadimplentes. Os métodos na interface só podem ser públicos e padrão.
O mesmo é: nenhum deles pode ser instanciado.
Nota adicional: as interfaces são um tipo especial de classe abstrata, uma classe mais abstrata, que você pode entender dessa maneira. Uma classe abstrata é uma classe incompleta e a interface define apenas algumas funções. Por exemplo, use classes e interfaces abstratas para descrever "cães". As classes abstratas adicionam abstrato antes das aulas gerais e dizem: "Os porcos podem correr com membros, os porcos podem correr assim ou aquilo ...", e a interface só pode dizer: "Os porcos podem correr, e o que eles usam para executar é uma subclasse".
O artigo acima discute brevemente as semelhanças e diferenças entre as interfaces Java e as classes virtuais C ++. Este é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.