Clases abstractas
Clase 38 de 47 • Curso Básico de Kotlin 2019
Contenido del curso
Conceptos básicos
- 4

Variables vs. Objetos
05:25 min - 5

Operadores en Kotlin
07:09 min - 6
Otros Operadores en Kotlin
01:17 min - 7

Tipos de variables: var, val y const
05:35 min - 8

Ejercicio var val const
13:30 min - 9
Programación Funcional: Funciones Puras e Inmutabilidad
01:48 min - 10

Strings
10:47 min - 11
Conversión de tipos de datos
00:43 min - 12

Rangos
05:47 min - 13

If y when en Kotlin
09:13 min - 14

Bucles while y do while
10:57 min - 15
Ciclos for y foreach en Kotlin
01:08 min - 16
Break, Continue y Labels
04:24 min - 17

Valores Nulos y Double Bang
11:05 min - 18

Operador Elvis
03:50 min - 19

Ejercicios con Null Safety y operador Elvis
11:26 min - 20
Reto 1
00:47 min
Conceptos avanzados
Programación Orientada a Objetos
- 29

Clases
06:25 min - 30

Ejercicio de clases
10:04 min - 31

Modificadores de acceso
11:13 min - 32

Getters y Setters
08:37 min - 33

El Get() y Set() propio de Kotlin
12:35 min - 34

Data class en Kotlin
08:49 min - 35

Método Constructor
08:42 min - 36

Herencia y polimorfismo
11:27 min - 37

Aplicando herencia y polimorfismo
15:53 min - 38

Clases abstractas
Viendo ahora - 39

Interfaces
11:15 min - 40
Reto 3
00:39 min
Programación Funcional
Bonus
Resumen
Las clases abstractas prácticamente siguen el mismo principio que en otros lenguajes de programación orientados a objetos como Java; las clases abstractas son aquellas que no tienen implementación y se usa la palabra reservada abstract en las clases para tal fin.
abstract class Forma(val nombre: String) {
abstract fun area(): Double
fun printName(){
println("el nombre es: ${nombre}")
}
}
class Circulo(nombre: String, val radio: Double): Forma(nombre) {
override fun area() = Math.PI * Math.pow(radio, 2.0)
}
fun main(args: Array<String>) {
val circulo = Circulo("Circulo", 4.0)
println(circulo.nombre)
println(circulo.radio)
println(circulo.area())
println(circulo.printName())
}
Podemos emplear la palabra reservada en los métodos (fun) para especificar que la clase que la definan sobreescriba dichos métodos, o podemos implementar algunos dentro de la clase abstracta y de esta forma, poder emplearlos en la clase que definen dicha clase abstracta.
Como en cualquier otro lenguaje, debemos sobrescribir cualquier método o propiedad que contenga la palabra reservada
abstracten la clase hija.