‫Bienvenidos de nuevo y este video, se trata de herencia, y vamos a seguir adelante y
‫crear una clase a la que solo llamaré publicación, por lo que una nueva clase y será una publicación.
‫Así que imagina que se trata de una publicación en las redes sociales, como una publicación de Twitter o una publicación de Facebook o cualquier tipo de
‫publicación.
‫Y la idea es que quiero heredar de la publicación y quiero crear algo como una publicación de imagen o luego una
‫publicación de video.
‫Y ese tipo de cosas nos permitirán comprender un poco mejor el concepto de herencia.
‫Y puede aplicar eso a diferentes objetos en diferentes situaciones en el futuro.
‫Entonces, en primer lugar, una publicación tiene una variable, que voy a convertir en privada estática en el ID de publicación actual.
‫Así que este va a ser un campo de esa publicación y es estático.
‫Por lo tanto, también está disponible fuera de esta publicación y se creará una vez que se inicie la aplicación.
‫Derecha.
‫Entonces, lo que podemos hacer es, en primer lugar, crear algunas propiedades.
‫Y ahora, la idea detrás de las propiedades, como sabes, es que te brindan más información sobre
‫el objeto.
‫Derecha.
‫Entonces, en nuestro caso, si creo un objeto de publicación, hay cierta información que realmente queremos tener.
‫Por ejemplo, queremos saber el ID así como un edman, como programador, no tanto como un usuario y el usuario no
‫está interesado en el ID de la publicación, sino como administrador o como el programa debe estar porque cada
‫publicación debe estar identificado y debe tener una identificación única.
‫Entonces vamos a tener identificaciones, necesitamos un título.
‫Entonces, por ejemplo, la publicación tiene un título, tal vez una descripción o un texto, algo así.
‫Entonces necesitamos saber quién envió esa publicación y si debería ser pública o no.
‫Por supuesto, hay mucho más que saber sobre la publicación, por lo que puede haber muchas más
‫propiedades en la publicación, pero lo mantendremos simple por ahora.
‫Así que voy a crear protegidas las propiedades aquí.
‫Y todavía no hemos utilizado propiedades protegidas.
‫Pero al final, proteger significa que eso solo puede ser utilizado por esta clase, pero una clase posterior y cualquier clase
‫derivada.
‫Entonces clases que derivan de post.
‫Así que seguiré adelante y crearé el primero, que será el ID.
‫Así que int i d y usaremos get y set.
‫Luego, otra propiedad, así que voy a usar un accesorio aquí y debería ser una
‫cadena y lo llamaré título y, como antes, debería estar protegido, luego nuestra propiedad y voy a usar una cadena nuevamente
‫y este será enviado por nombre de usuario.
‫Entonces, ¿quién lo envió?
‫Y también estará protegido.
‫Y finalmente, una propiedad llamada es pública.
‫Entonces es un booleano porque solo puede tener dos valores.
‫Entonces, o es público o no es público.
‫Entonces tenemos simplemente estas propiedades.
‫Derecha.
‫Entonces, ahora creamos un constructor predeterminado y hay algo que saber sobre el constructor predeterminado si se deriva,
‫si una clase de borrador no invoca un constructor de cláusula base explícitamente, el constructor predeterminado
‫se llama implícitamente.
‫Por eso creamos uno aquí.
‫Entonces creamos una publicación pública.
‫Y ahora esa publicación estará bien, porque aquí no tenemos ningún parámetro.
‫Se definirá o estableceremos los valores aquí.
‫Entonces será cero.
‫Entonces el título es, por ejemplo, mi primera publicación o tal vez con espacios vacíos.
‫Primera publicación así, ¿luego es pública?
‫Bueno, digamos cierto porque queremos verlo y luego enviarlo por nombre de usuario.
‫Bien enviado por mi.
‫Entonces el demandado en este caso.
‫Entonces, cada vez que creamos una publicación ahora, será esta publicación aquí.
‫Así que va a ser mi primera publicación.
‫En ese momento quiero tener otra instancia, un constructor que tenga varios parámetros.
‫Entonces quiero crear publicaciones donde realmente pueda definir esas cosas.
‫No defino la ID, pero puedo definir el título.
‫Puedo decir si es público y si se envía mediante qué nombre de usuario.
‫Así que puedes imaginarte eso.
‫Digamos que escribe un pequeño programa de redes sociales y desea tener la capacidad de publicar y
‫luego necesita enviar esa información cada vez que crea una publicación.
‫Entonces, el usuario crea una publicación y obtiene una ID definida automáticamente, luego obtiene una definida automáticamente donde obtiene un título
‫definido en función de lo que ha ingresado el usuario.
‫Es público en función de lo que ha marcado el usuario, ya sea que haya decidido hacerlo público o no,
‫y lo envía él.
‫Así que son solo datos que se entregan cuando se crea cada publicación.
‫Así que ahora creemos un constructor de instancias que tenga tres parámetros.
‫Así que voy a crear una publicación pública y aquí voy a usar el título de la cadena bool es público y la cadena se
‫envía por nombre de usuario.
‫Y aquí estableceré la identificación y para eso necesitaré algo.
‫Así que ahora lo pondré en cero.
‫Pero necesitaré un método adicional que siempre creará una nueva ID para cada publicación.
‫Veremos cómo funciona eso en un segundo.
‫Así que este título va a ser el título de este enviado.
‫Mi nombre de usuario se enviará por nombre de usuario con una letra no guardada aquí y esto que
‫es público será público y no la propiedad, sino este parámetro.
‫Así que ahora dije que no quiero que sea cero.
‫La idea debe ser única.
‫Entonces, la mejor manera es crear un método que estará protegido y se llama get next.
‫Lo que hará es que simplemente devolverá la siguiente ID, lo que significa la ID de publicación actual y aquí lo incrementamos
‫antes de eso.
‫Entonces, cada vez que se llame, se incrementará en uno.
‫Así que este de aquí, este ID de publicación actual se incrementará en uno.
‫Así que ahora, en lugar de poner cero aquí, vamos a llamar a la siguiente ID u obtener el siguiente método de ID.
‫Ahora, ¿qué más le gustaría tener en un programa de este tipo en el que pueda publicar algo mientras supongo que tiene
‫la capacidad de ajustar una publicación?
‫Así que por ahora creamos una publicación y no estaríamos contentos si no podemos cambiar esa publicación.
‫Y bueno, eso es algo que realmente sucede.
‫Y creo que en Snapchat creas una imagen y luego está ahí, puedes editar esa imagen.
‫No estoy seguro de si puede editar el texto, pero aquí queremos poder editar el texto, por lo
‫que crearemos un nuevo método, una actualización de vacío público, y eso debería incluir el título.
‫Y el cuenco es público porque si lo piensas bien, ¿qué debería poder actualizar el usuario?
‫No debería poder tener la identificación, ni debería poder actualizar el nombre de usuario porque lo envió
‫él.
‫Por lo tanto, tiene un nombre de usuario y no debería afectar la actualización de una publicación.
‫Entonces, aquí, solo vamos a actualizar la publicación y significa que solo cambiaremos el título y cambiaremos
‫el booleano, que sea público o no.
‫Y aquí simplemente decimos que este título será título y esto que es público será tan
‫público como lo tenemos aquí.
‫Una publicación es un plano, mientras que esta clase es un plano de cualquier instancia de publicación.
‫Entonces, cada vez que publicamos algo que es ese yo, esa instancia es la publicación y si cambiamos su título, cambiamos
‫el título de esa publicación específica.
‫Y si cambiamos, ya sea público o no, cambiamos la publicidad de esa publicación específica.
‫Bien, eso nos permite actualizar el título y su publicidad de una publicación existente.
‫Así que ahora el siguiente que quiero crear es una anulación de método virtual de dos cadenas que se hereda del
‫sistema de ese objeto.
‫Entonces system, ese objeto es una clase que viene aquí en system.
‫Entonces podemos usar eso.
‫Está dentro de Do sostenido y simplemente podemos usar eso.
‫Y hay un método llamado a cadena o en realidad desde allí podemos llamar al método de dos cadenas.
‫Entonces, system, el objeto tiene un método de dos cadenas, y queremos anular eso
‫porque cada clase, por lo que nuestra clase también, está heredando de esa clase de objeto.
‫Entonces sistema, ese objeto es una clase de la que podemos heredar.
‫Entonces, aquí, ese objeto, por ejemplo, podemos heredar de eso, o en realidad, todas las clases heredan de eso.
‫Entonces, ahora lo que podemos hacer es anular uno de sus métodos.
‫Entonces, cadena de anulación pública y dos cadenas, como puede ver, ya propone esto.
‫Entonces dice que devuelve la cadena que representa el objeto actual que algo que está dentro de la clase de
‫objeto.
‫Y como puede ver, hay algo llamado Return Bayes to string.
‫Entonces, la clase base tiene un método de dos cadenas.
‫Y si simplemente hacemos eso, entonces esto prácticamente no significará nada porque simplemente usaremos el método
‫de dos cadenas de la clase base de todos modos.
‫Pero podemos cambiarlos para poder ajustarlos en lugar de devolver lo que sea que devuelva la clase base.
‫Queremos hacer nuestras propias cosas.
‫Entonces, usaremos una cadena de ese formato para formatear una cadena, que va a tener cierta
‫información.
‫Entonces va a ser la idea, va a ser el título y quién lo envía.
‫Así que solo voy a usar este tipo de información así.
‫Entonces va a ser esta identificación.
‫Entonces la idea entonces este el título y finalmente este que se envió por nombre de usuario.
‫Entonces eso es lo que va a regresar.
‫Entonces, cada vez que usamos una cadena, no devolverá simplemente alguna información sobre el objeto, sino que
‫lo devolverá en el formato estándar o en nuestro formato que hemos creado.
‫Así que este es nuestro formato, ¿verdad?
‫Entonces.
‫Creemos un objeto de esa clase, así que vayamos a nuestro programa y luego aquí creemos una
‫publicación.
‫Entonces, la publicación uno es una publicación nueva, y aquí puedo ingresar información donde puedo dejarla.
‫Entonces, si lo dejo, ese es el constructor predeterminado que se llamará.
‫Así que ese de aquí.
‫Y si no lo hago, se llamará a uno diferente.
‫Digamos que publiqué algo.
‫Gracias por los deseos de cumpleaños.
‫Así que todos me desearon feliz cumpleaños.
‫Así que solo voy a agradecerles mucho y quiero hacerlo porque quiero que mis amigos lo vean, así
‫que debería ser público.
‫Y luego Dennis Pan, Utah, es quien lo envía.
‫Por supuesto, podríamos tener una clase de usuario que haga todo el manejo y podríamos simplemente verificar qué usuarios iniciaron sesión
‫o lo que sea.
‫Pero por ahora, solo usamos una cadena codificada de forma rígida aquí.
‫Entonces será Dennis Bunnytown.
‫Así que esa es una nueva publicación que tenemos aquí.
‫Y ahora podemos seguir adelante y escribir eso en la consola.
‫Entonces S. W. y voy a decir post punto a cadena y aquí, por supuesto, el post.
‫Entonces nuestra instancia de publicación.
‫Así que esta es nuestra instancia de publicación.
‫Y llamé a la publicación uno y va a escribir algo en una consola.
‫Y como queremos ver qué es, necesitamos realinear aquí.
‫Así que solo queremos mantener la consola abierta para que veamos lo que está sucediendo allí y que, como pueden
‫ver, somos uno, gracias por el cumpleaños, que es de Dennis Pennetta.
‫Y esta es la idea de esta publicación.
‫Eso significa que nuestra publicación aquí.
‫Este obtiene una nueva identificación y la nueva identificación será cero más uno o más uno, lo que significa que es
‫solo uno.
‫Entonces es por eso que tenemos este aquí.
‫Entonces la idea es una, luego publicar información.
‫Y ese es quien lo envió para entonces, Pontotoc.
‫Así que ahora tenemos una publicación y sigamos adelante y usemos la herencia, porque hasta ahora, excepto quizás
‫por estas dos cadenas aquí, en realidad no hay herencia.
‫Así que en realidad solo para ti.
‫Entonces, ya sabe lo que dije antes, el método virtual anula el método de dos cadenas que se hereda del
‫sistema de ese objeto.
‫Así que ahora creemos una nueva clase.
‫Y esa serán publicaciones de imágenes porque, bueno, hasta ahora solo podemos publicar cierto texto aunque sea simple, pero en
‫el futuro también queremos publicar imágenes.
‫Y ahora esa publicación de imagen debería ser una clase de manejo de nuestra publicación de clase base porque esta clase aquí es una clase muy
‫simple y queremos seguir adelante y heredar de ella.
‫Entonces, para heredar de otra clase, usa Kolon y luego ingresa el nombre de la clase de la que
‫desea heredar.
‫Entonces quiero heredar de la publicación.
‫Y eso me permite utilizar toda su funcionalidad.
‫Eso es algo muy bueno porque ahora puede usar sus propiedades.
‫Puedo usar sus variables excepto su constructor aquí.
‫Y si.
‫Así que sigamos adelante y hagamos eso y extendamos la publicación de la imagen.
‫Entonces, como saben, se deriva de la publicación y ahora debería tener otra propiedad llamada URL de imagen y dos
‫constructores.
‫Entonces eso es lo que quiero agregar.
‫Entonces, primero, necesito una propiedad aquí y será una cadena llamada image.
‫Usted es la que será la imagen de la URL de la publicación de la imagen.
‫Entonces, digamos que publicamos algo y hay una imagen en él, luego es automáticamente o debería ser una
‫publicación de imagen y debe tener una URL de imagen.
‫Entonces, una ubicación donde se almacena esa imagen que puede estar en nuestros servidores o podría estar simplemente en Internet.
‫Entonces, sea lo que sea, tenemos esta necesidad de tener esta URL de imagen para una publicación de imagen.
‫Ahora creemos una publicación de imagen pública de constructor muy simple
‫así.
‫Nada más.
‫Como puede ver, no hay nada ahí.
‫No quiero hacer nada aquí.
‫Y luego creé otra publicación aquí, o un constructor de publicaciones de imagen, pero esta vez quiero algunos parámetros aquí.
‫Entonces, será una cadena de título de cadena enviada por nombre de usuario, imagen de cadena de su URL y en realidad usted es
‫L y Boulle es público, así que quiero tener todos esos.
‫Y ahora, en la publicación de la imagen, quiero volver a plantear la idea.
‫Esta ID de pensamiento es igual para obtener la siguiente ID y eso es algo que ya es bastante bueno.
‫¿De dónde diablos viene esta idea y de dónde viene la siguiente idea?
‫Bueno, viene del correo.
‫Así que estamos tomando este método aquí, este método protegido.
‫Simplemente podemos llamarlo aquí.
‫Podemos usarlo como si fuera nuestro.
‫Así que ni siquiera necesitamos decir algo como post dot get next ID.
‫Simplemente decimos tener la siguiente idea.
‫Y lo mismo para esta identificación.
‫Entonces, cada publicación de imagen tiene una identificación, lo mismo que la publicación en sí.
‫Y ahora eso también es cierto para el título.
‫Entonces el título va a ser título.
‫Luego comienzan a enviar por nombre de usuario y se enviarán por nombre de usuario.
‫Y finalmente, esto es público, será público ahora.
‫Eso es muy bonito.
‫Podemos usar esas cosas.
‫Eso es genial.
‫Y ahora también tenemos nuestra propia propiedad, que es la URL de nuestra imagen, y la tenemos aquí.
‫Entonces, cada vez que se crea una publicación de imagen, la URL de la imagen debe proporcionarse como argumento.
‫Entonces decimos que la URL de esta imagen será la URL de la imagen.
‫Entonces, por un lado, tenemos el heredado del correo.
‫Entonces, voy a agregar eso aquí y, por otro lado, tenemos el que es nuestro propio miembro, por lo que la propiedad image es
‫un miembro de Image Post, pero no de post.
‫Y eso es algo que es importante.
‫Entonces, Post no conoce la URL de esta imagen y no importa, pero nuestra publicación de imagen conoce todas las
‫propiedades de nuestra publicación.
‫Entonces eso es herencia.
‫Ahora, una pequeña cosa sobre esta publicación de imagen aquí, entonces.
‫Los constructores son necesarios, esos dos, porque ninguno de los constructores llama a una clase base.
‫Entonces no usamos esta base sin llamar al constructor de la clase base y el constructor
‫predeterminado y la clase base se llama implícitamente porque no la llamamos explícitamente aquí.
‫Entonces ni en este ni en este, el de la clase base, el constructor.
‫Por lo tanto, se debe llamar a este constructor predeterminado o debe haber un constructor base dentro de nuestra publicación.
‫Por eso lo creé, porque es posible que se haya preguntado, ¿por qué lo necesitamos?
‫¿Por qué está ahí?
‫Bueno, es necesario porque no lo llamamos explícitamente que está activado y se llamará implícitamente.
‫Derecha.
‫Excelente.
‫Así que eso es todo.
‫Avancemos a nuestra clase de programa y creemos una de esas publicaciones.
‫Y voy a crear una publicación de imagen ahora y será una nueva publicación de imagen y de hecho les daré el
‫nombre.
‫Voy a llamarlo Image Post one.
‫Será una nueva publicación de imagen.
‫Y voy a ver mis zapatos nuevos porque compré algunos zapatos nuevos y son jodidamente increíbles.
‫¿Y quién lo envía?
‫Bueno, entonces es súper penetrable.
‫El rumor sobre sus zapatos nuevos.
‫Y, por supuesto, necesita tener un enlace para esas imágenes mientras acaba de subir la imagen.
‫Pero la imagen en sí tiene un enlace porque está almacenada en algún lugar de nuestro almacenamiento, o en nuestros servidores.
‫Así que será un https seguro.
‫Y solo voy a falsificar un enlace aquí.
‫Solo lo voy a llamar imágenes, dot com slash shoes y bueno, lo hizo público.
‫Por lo que es verdad.
‫Y pongámoslo en la siguiente línea para que sea más fácil de leer.
‫Así que ahora tenemos nuestra publicación de imagen.
‫Y lo que podemos hacer con la publicación de la imagen ahora es escribir algo en la consola nuevamente para ver qué
‫está pasando.
‫Y solo voy a llamar a la publicación de imagen un punto a una cadena, y eso es nuevamente, algo que es bastante
‫bueno.
‫Entonces llamamos a este método de dos cadenas en nuestra imagen.
‫Publica uno.
‫¿Y ves un método de cadena aquí?
‫Yo no.
‫Y eso es genial porque tomamos el de nuestra publicación.
‫Así que heredamos de post y ahora tomamos su método, que se llama a string.
‫Y si ejecutamos eso.
‫De hecho, tenemos que dejar de ejecutarlo.
‫Porque no lo veremos, hay una lectura y se ha ido.
‫Así que debemos tomar esta línea roja y publicarla aquí.
‫Así que ejecutémoslo de nuevo.
‫Y dice, mira mis zapatos nuevos de Dennis Punnet.
‫Pero, ¿dónde está el vínculo que necesito vincular?
‫Vamos, dame el enlace.
‫Bueno, no está ahí porque el método de dos cadenas de nuestra publicación no conoce los enlaces.
‫No tiene ni idea de enlaces.
‫No le importa qué enlaces.
‫No necesita ninguno.
‫Así que un pequeño desafío para ti.
‫Y así vamos a terminar el video.
‫Por ahora, cree un método de dos cadenas dentro de nuestra publicación de imagen que también nos informe sobre el enlace.
‫Muy bien, espero que lo hayas probado, así que lo que voy a hacer es mantenerlo simple.
‫Voy a copiar las dos cadenas de aquí en su publicación de imagen, y voy a cambiar el formato solo un
‫poco.
‫Voy a agregar una pequeña declaración aquí, también va a ser el enlace y tres seguirán siendo el usuario, por
‫lo que necesitamos el enlace aquí para que comiencen a crear la imagen de su URL Karma.
‫Entonces el pedido es Edem, titula tu URL y luego lo envía el usuario.
‫Entonces, si haces eso, anulamos desde la clase base, por lo que anulamos las dos cadenas de nuestra publicación que
‫sobrecargaron desde el sistema ese objeto.
‫Entonces puede ver que puede anularlo y anularlo, etc., y veremos dónde está el límite o
‫cómo podemos limitarlo.
‫Así que ahora ejecutémoslo.
‫Y podemos ver mis zapatos nuevos, aquí está el enlace, Dennis, para que pueda hacer clic en el enlace en la cuenta
‫de la consola.
‫Pero generalmente podía hacer clic en el enlace y podía ver la imagen o mi herramienta.
‫Mi aplicación, por ejemplo, podría leer ese enlace y mostrar la imagen.
‫Está bien.
‫Así que ese es un primer vistazo a la herencia, fue un video largo.
‫Yo sé eso.
‫Y la herencia es mucho más que eso.
‫Y analizaremos cosas mucho más interesantes.
‫Pero antes que nada, vamos a abordar un desafío en el siguiente video.
‫Y así nos vemos en el siguiente video.