Nombre: Brayan López Torres Boleta: 2019640099 1.- ¿Qué diferencias hay entre implementar una clase abstracta y una interfaz? Una clase abstracta se utiliza en la herencia cuando queremos que una clase hija herede métodos los cuales tendrán que ser definidos por la misma clase hija. En java no existe la herencia múltiple por lo que si queremos hacer uso de este concepto hay que implementar interfaces. Tanto las clases abstractas como las interfaces hacen uso de métodos abstractos, la gran diferencia es que se puede implementar un numero indefinido de interfaces a una clase, mientras que solo se puede implementar una sola clase abstracta padre. 2.- ¿Cuál es la sintaxis para hacer que una clase implemente a varias interfaces? public class MultipleInterfaces implements InterFaceOne, InterFaceTwo { private InterFaceOne if1; private InterFaceTwo if2; } 3.- ¿Qué determina que deba representar en UML a una clase como abstracta o como interfaz? Una clase abstracta en UML debe de estar escrita en letra cursiva como se muestra a continuación. Una interfaz en UML debe tener una etiqueta que diga << interface>> en el nombre. La línea que vincula a una interfaz con una clase debe ser punteada y debe tener punta de flecha
4.- ¿Qué entiende por polimorfismo?
En programación el polimorfismo puede entenderse como la sobrecarga de un método o variable, es decir, el método o variable va a actuar o va a ser diferente dependiendo su implementación, en este caso la clase en el tema herencia. 5.- ¿Qué entiende por enlazado dinámico? En términos sencillos el enlace dinámico o enlazado dinámico es un tipo de polimorfismo en el cual un método se comporta diferente mientras recibe mensajes que se le van dando al ejecutar el programa es decir “tiempo de ejecución” de ahí el termino dinámico. 6.- ¿Qué entiende por el principio de sustitución? El principio de sustitución explica la forma correcta de usar la herencia en programación, se entiende que una clase padre hereda a otra clase hija lo que es una forma de decir que son clases del mismo tipo o similares por lo cual la clase padre puede ser reemplazado por objetos de la clase hija. 7.- Explique el principio de sustitución descrito en el siguiente video: El principio de sustitución hace referencia a como debe ser la correcta implementación del concepto de la herencia. El principio establece que, si S es un subtipo de T, T puede ser reemplazado con objetos de tipo S sin alterar el comportamiento esperado en el programa.
8.- ¿Qué es un atributo de clase o clasificador?
Los atributos de clase o también llamados atributos estáticos son atributos que no están ligados a un objeto de una clase, están ligados a la misma clase, eso permite que todos los objetos de una clase tengan acceso a un atributo constante de la clase. 9.- ¿Qué es un atributo de instancia o no estático? Un atributo de instancia es un atributo el cual esta asociado a las instancias de una clase, es decir, los objetos de una clase. Al estar relacionado el atributo con los objetos, cada objeto tiene o posee una copia del atributo. 10.- ¿Cómo se representan y como se codifican los atributos estáticos o clasificador? Un atributo estático se representa en un UML con una línea subrayada:
En java es la siguiente sintaxis:
public class Persona {
private String nombre;
private int edad; private static int contadorPersonas; atributo estático
.......
public static int getContadorPersonas() {
return contadorPersonas; }
public static void setContadorPersonas(int contadorPersonas) {