Brevemente es algo asi: En una clase vos definis metodos, estos pueden ser privados o publicos, si son privados solo los puede utilizar esa clase exclusvamente, si son publicas los vas a heredar a los hijos de esa clase. Despues el virtual se utiliza para heredar metodos q nos estan definidos en esa clase, y q los vas a definir en los hijos, esto se utiliza para metodos q tengan distintas implementaciones. Por ejemplo:
Si tenes la superclase (o clase padre) "coleccion", q es una secuencia de datos, y tiene dos hijos, la clase pila y la clase fila (o cola), en la clase padre vas a definir los metodos q vas a heredar basicos q son: agregar, eliminar, etc. Pero los tenes q definir con virtual porq esos metodos en los hijos se comportan distinto, en una pila agregas al principio y en una fila al final. Entonces vos en la clase pila implementas el agregar de la clase pila como debe ser y en la clase fila tb.
Esa es la razon por la q se usa el virtual
Espero q t haya servido. Cualquier cosa, escribime un mail.
Switching loders