Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

5D
15H
13M
47S
Curso Avanzado de Java SE

Curso Avanzado de Java SE

Anah铆 Salgado D铆az de la Vega

Anah铆 Salgado D铆az de la Vega

Clases Abstractas

2/39
Recursos

Aportes 46

Preguntas 7

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Este curso deben de renovarlo porque continua con el curso viejo de Java SE 2018 y no con el nuevo que sacaron de introducci贸n a Java y Java orientado a objetos. Eso de Amazon viewer no es para nada pr谩ctico ya deben usar el IntelliJ Idea

Como que mejor comienzo por el curso de Java Orientado a Objetos jaja

UN PEQUE脩O REPASO DE ALGUNAS COSAS DEL CURSO ANTERIOR PARA REFRESCAR LA MEMORIA:

toString:
Informaci贸n completa de un objeto, es decir, el valor de sus atributos

HERENCIA:
Esto es una de las bases de la reutilizaci贸n de c贸digo, en lugar de copiar y pegar. Al heredar de una clase base heredaremos tanto los atributos como los m茅todos, mientras que los constructores son utilizados, pero no heredados.

POLIMORFISMO:
Se da en los m茅todos sobrescritos, muchas formas de definir un m茅todo.

M脡TODO CONSTRUCTOR:
Cuando se construye un objeto es necesario inicializar sus variables con valores coherentes, imaginemos un objeto de la clase Persona cuyo atributo color de pelo al nacer sea verde, un estado incorrecto tras construir el objeto persona. La soluci贸n en los lenguajes orientados a objetos es emplear los constructores. Un constructor es un m茅todo perteneciente a la clase que posee unas caracter铆sticas especiales:

  1. Se llama igual que la clase.
    2.-No devuelve nada, ni siquiera void.
    3.-Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones.
    4.-De entre los que existan, tan s贸lo uno se ejecutar谩 al crear un objeto de la clase.

INTERFACES:
Empleadas para definir un comportamiento que posteriormente ser谩 implementado por distintas clases, que podr铆an no tener que ver entre s铆, pero todas se comportan como los m茅todos declarados en la interfaz.

HACE FALTA MUCHO M脕S DEL CURSO ANTERIOR, PERO, ES S脫LO PARA ENTENDER BIEN EL CONCEPTO DE CLASES ABSTRACTAS

.

aqui el enlace de AMAZON VIEWeR

Clases Abstractas
En Java se dice que son clases abstractas aquellas clases base (superclases) de las que no se permite la creaci贸n de objetos. Para ello, se utiliza la palabra clave abstract.

M茅todos Abstractos
En una clase abstracta es posible definir m茅todos abstractos, los cuales se caracterizan por el hecho de que no pueden ser implementados en la clase base. De ellos, solo se escribe su signatura en la superclase, y su funcionalidad 鈥損olim贸rfica鈥 tiene que indicarse en las clases derivadas (subclases).

En java tenemos:

  • polimorfismo est谩tico: Sobrecarga de metodos.

  • polimorfismo din谩mico: Sobreescritura de metodos.

A Alguien m谩s le dio errores al momento de implementar el proyecto anterior? Por que yo no he logrado hacer andar el import com.anncode.makereport.Report; por que me dice que no se puede resolver y cuando uso el mio, lo toma como diferente al que uso la Profesora鈥 alguien m谩s lo resolvio?

Me parece muy raro que tanto tiempo despues no se han actualizado los cursos

veamos si se puede avanzar sin ver el curso del 2018 馃槂

Wuao 馃く鈥 Por ah铆 viene mucho que aprender 馃挭馃徑

Ejemplo clase abstracta:

Las clases abstractas es como organizar el c贸digo de los mas global a lo mas especifico, en este caso un ejemplo seria

la clase figura en el cual puede contener tri谩ngulos, c铆rculos,
Las clases especificas seria tri谩ngulos o circulo

Nunca habia utilizado esa clase de polimorfismo!

Hola que tal!

En el ejemplo de Triangulo extends Figura como esa clase no implementa el m茅todo abstracto de la clase padre autom谩ticamente esta clase se convierte en abstracta. Por que para que una clase sea abstracta por lo menos un m茅todo tiene que ser abstracto. 驴Es esto correcto?

Ejemplo de c贸digo de implementacion

<package abstracts;

public abstract class Figura {

    abstract void dibujar();
}
>

Implementacion

</*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package abstracts;

/**
 *
 * @author wilso
 */
public class Circulo extends Figura {

    @Override
    void dibujar() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

}
>

Genial.

No puedo abrir AmazonViewer alguien me puede ayudar?

Bueno llegue hasta aqui y claramente no puedo seguir con este curso, pues esta desactualizado con el curso anterior: Java basico 2018 algo asi y yo estoy siguiendo los de ahora 2020. Ni modo, ire a hacer el curso viejo para seguir con este, pero deben actualizar cuanto antes.

No existe el t茅rmino clases avanzadas, veremos entonces una extensi贸n de lo que podemos hacer con las clases en Java.

En el curso anterior hablamos de Polimorfismo a nivel de herencia y aplicado a interfeces.

Interfaces:

A veces no es necesario implementar todos los m茅todos

Herencia:

No siempre queremos heredar todos los m茅todos de la clase padre. Tampoco es necesario hacer instancias de la clase padre.

Quien soluciona los detalles que le faltan de implementar a la herencia y las interfaces son las clases abstractas.

Clase abstracta:

  • No implementa todos los m茅todos.

  • No crearemos instancias de la clase padre.

  • Es otro nivel de polimorfismo

un curso de hace 5 a帽os. 馃槮

Gente no se desanimen, no necesitan dar los cursos anteriores, con todo lo que saben ahora, simplemente pueden leer el codigo anterior y continuar esta clase, para uds ser谩 f谩zil

Una interfaz pr谩cticamente es como si fuera una clase abstracta en la cual por defecto sus atributos son p煤blicos, est谩ticos y finales, los m茅todos no est谩ticos son p煤blicos y abstractos (podiendo quitar lo abstracto con la palabra reservada default para poder implementar la funci贸n), y donde el constructor esta vac铆o.

public abstract class Figura {

  public abstract double area();

}

Leyendo los comentarios me di cuenta que muchos tienen problema con seguir el curso usando Intellij IDEA. Les dejo mi repositorio all铆 se encuentra el c贸digo base para iniciar este curso usando este IDE.

https://github.com/IngJuanMaSuarez/AmazonViewer

Solo descargan o clonan el repositorio, abren Intellij IDEA, seleccionan la opci贸n de 鈥淥pen鈥, buscan la carpeta descargada y descomprimida y listo.

Cree un repositorio del c贸digo inicial de este curso:

https://github.com/JordyAI/java_avanzado_platzi/

Recuerden cambiar a rama Master, es la versi贸n inicial.

Excelente explicaci贸n.

Muy bueno !

Hola鈥 compa帽eros tengo un problema y es que sucede de que cuando yo descargo el proyecto de git me sale error con todos los System.out.print quien me puede ayudar por favor.

Muy bien excelente clase

La clases abstractas son aquellas clases que son declaradas de tal forma que no sea posible crear instancias de estas. Solo se utilizan como superclases en jeraquias de herencia.

El prop贸sito de una clase abstracta es proporcionar una superclase apropiada, a partir de la cual puedan
heredar otras clases y, por ende, compartir un dise帽o com煤n.

La forma de declarar una clase como abstracta es con la palabra reservada abstract

Excelente!!

muy buena explicaci贸n!!

Las clases abstracta: 鈥渟on como una fusi贸n entre las cosas que le faltan a la interfaz por implementar y a ala herencia por cubrir鈥.

Un m茅todo que sea obligatorio de implementar en una clase abstracta deber谩 definirse con la misma palabra reservada que la clase.

Ejemplo:

public abstract class Figura{
abstract void dib煤jate();
}

sesadas```

APUNTES DE CLASE:

CLASES ABSTRACTAS:
Una clase abstracta es una especie de fusi贸n de interface y herencia que complementa lo que hace falta en ambas.

  • Se puede definir en una clase abstracta qu茅 cosas o qu茅 m茅todos s铆 son obligatorios de implementar y cu谩les no.

  • No se pueden crear instancias de dicha clase

  • Todo el tiempo una clase abstracta va a ser una clase padre que puede heredar m茅todos (no es necesario heredar todos los m茅todos)

  • No es necesario heredar todos los m茅todos de una clase abstracta

  • Un m茅todo que sea obligatorio de implementar deber谩 tener la palabra 鈥渁bstract鈥

@since

Especifique la versi贸n del producto cuando el nombre de Java se agreg贸 a la especificaci贸n de la API (si es diferente de la implementaci贸n). Por ejemplo, si un paquete, clase, interfaz o miembro se agreg贸 a la plataforma Java 2, edici贸n est谩ndar, especificaci贸n de API en la versi贸n 1.2, use: 

/** * @since 1.2 */

El doclet est谩ndar de Javadoc muestra un subt铆tulo "Desde" con el argumento de cadena como texto. Este subt铆tulo aparece en el texto generado solo en el lugar correspondiente a donde aparece la etiqueta @since en los comentarios del documento de origen (la herramienta Javadoc no la prolifera en la jerarqu铆a).

(La convenci贸n una vez fue "@since JDK1.2", pero debido a que esta es una especificaci贸n de la Plataforma Java, no particular al JDK o SDK de Oracle, hemos eliminado "JDK").

Cuando se introduce un paquete, especifique una etiqueta @since en su descripci贸n del paquete y cada una de sus clases. (T茅cnicamente, no es necesario agregar etiquetas @since a cada clase, pero es nuestra convenci贸n, ya que permite una mayor visibilidad en el c贸digo fuente). En ausencia de etiquetas de reemplazo, el valor de la etiqueta @since se aplica a cada una de las clases del paquete y miembros.

Cuando se introduce una clase (o interfaz), especifique una etiqueta @since en su descripci贸n de la clase y ninguna etiqueta @since en los miembros. Agregue una etiqueta @since solo a los miembros agregados en una versi贸n posterior a la clase. Esto minimiza el n煤mero de etiquetas @since.

Si un miembro cambia de protegido a p煤blico en una versi贸n posterior, la etiqueta @since no cambiar谩, aunque ahora cualquier persona que llama, no solo los subclasificadores, puede utilizarla. 

Donde puedo obtener el proyecto del que habla.

Pero @anncode, si le coloco abstract al m茅todo en la clase Triangulo, 驴Entonces la clase Triangulo ser铆a abstracta?

GRacias

Muy buena clase instructora Anah铆, para resumir una clase abstracta es aquella que no puede instanciarse y que no todos sus m茅todos tienen que implementarse, por lo cual es ideal para ser super clase o clase padre.
聽聽聽
Para convertir una clase a clase abstracta tenemos que usar la palabra reservada abstract antes de class e igualmente para los m茅todos usar abstract antes del tipo de par谩metro a regresar (void, int, String, entre otros.)

Eres la mejor miss

Tengo un problema al descargar el proyecto desde git https://es.stackoverflow.com/questions/381319/error-al-descargar-un-proyecto-desde-git a qui lo presento mas detalladamente agradecer铆a alguna ayuda 馃槃

Buenos dias!!
Una consulta una clase abstracta necesariamente debe tener atributos y m茅todos? o se podr铆a tambi茅n declarar solo atributos en el caso de que esa clase no tenga ning煤n m茅todo?
Muchas gracias por sus respuestas!!

Gracias por los conceptos.
Podria ayudar esto.
Las clases abstractas representa un concepto g茅nerico en una jerarqu铆a de clases. Normarmente la clase abstracta no estan suficienmente definida para ser 煤til por s铆 misma. Puede contener una descripcion parcial que heredan todos sus descendientes en la jerarqu铆a de clases. Sus hijos, que son m谩s especificos, ellos llenan los vac铆os.

Esto ya me gust贸, un buen inicio. A aprender.