Skip to content

Commit

Permalink
Update Lecture 13
Browse files Browse the repository at this point in the history
  • Loading branch information
jpconsuegra committed May 19, 2024
1 parent 78c72c5 commit 81ddda8
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions conferences/2024/13-polymorphism/lecture-13.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ La forma natural en la que se clasifican objetos en tipos (en la vida cotidiana)
- Tipo estático: el tipo que garantiza el compilador.
- Tipos dinámico: el tipo real que tendrá el objeto en runtime.

C# nos da dos mecanismos para forzarlo a utilizar un tipo estático.
- Casteo: `(<StaticType>) <expression>`. Si en runtime el tipo dinámico del objeto al que evaluó la expresión no es descendiente del tipo `<StaticType>` que se haya indica, se lanzará una excepción.
- Instrucción `as`: `<expression> as <StaticType>`. Si en runtime el tipo dinámico del objeto al que evaluó la expresión no es descendiente del tipo `<StaticType>` que se haya indica, se devolverá `null`.

> **OJOOOOOOOOOOO**: en ninguno de los dos casos el tipo dinámico del objeto cambia.
## Herencia por especialización

Volviendo al problema de herencia para **especializar** (cambiar alguna de sus funcionalidades, o sea, hacer lo mismo, pero **mejor**, más especializado) veremos una nueva sintaxis (`virtual` y `override`).
Expand Down

0 comments on commit 81ddda8

Please sign in to comment.