Вы находитесь на странице: 1из 3

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERÍA QUÍMICA


INGENIERÍA DE LA PRODUCCIÓN
Nombre: Dayana Noboa Infante Curso: IP-S-MA-1-4
Docente: Ing. Galo Tobar Materia: Fundamentos de Programación
INVESTIGACIÓN

HERENCIA_____________________________________________________
CONCEPTO
La herencia es un pilar importante de OOP (Programación Orientada a Objetos). Es el
mecanismo en Java por el cual una clase permite heredar las características (atributos y
métodos) de otra clase. Aprenda más a continuación.

En el lenguaje de Java, una clase que se hereda se denomina superclase. La clase que hereda
se llama subclase. Por lo tanto, una subclase es una versión especializada de una superclase.
Hereda todas las variables y métodos definidos por la superclase y agrega sus propios
elementos únicos.

Terminología importante

 Superclase: la clase cuyas características se heredan se conoce como superclase (o una


clase base o una clase principal).
 Subclase: la clase que hereda la otra clase se conoce como subclase (o una clase
derivada, clase extendida o clase hija). La subclase puede agregar sus propios campos
y métodos además de los campos y métodos de la superclase.
 Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando
queremos crear una clase nueva y ya hay una clase que incluye parte del código que
queremos, podemos derivar nuestra nueva clase de la clase existente. Al hacer esto,
estamos reutilizando los campos/atributos y métodos de la clase existente.

EJEMPLO

class DosDimensiones{
private double base;
private double altura;

//Métodos de acceso para base y altura


double getBase(){return base;}
double getAltura(){return altura;}
void setBase(double b){base=b;}
void setAltura (double h){altura=h;}

void mostrarDimension(){
System.out.println("La base y altura es: "+base+" y "+altura);
}
}
//Una subclase de DosDimensiones para Triangulo
class Triangulo extends DosDimensiones{
String estilo;

double area(){
return getBase()*getAltura()/2;
}

void mostrarEstilo(){
System.out.println("Triangulo es: "+estilo);
}
}

class Lados3{
public static void main(String[] args) {
Triangulo t1=new Triangulo();
Triangulo t2=new Triangulo();

t1.setBase(4.0);
t1.setAltura(4.0);
t1.estilo="Estilo 1";

t2.setBase(8.0);
t2.setAltura(12.0);
t2.estilo="Estilo 2";

System.out.println("Información para T1: ");


t1.mostrarEstilo();
t1.mostrarDimension();
System.out.println("Su área es: "+t1.area());

System.out.println();

System.out.println("Información para T2: ");


t2.mostrarEstilo();
t2.mostrarDimension();
System.out.println("Su área es: "+t2.area());

}
}
Salida:

Información para T1:


Triangulo es: Estilo 1
La base y altura es: 4.0 y 4.0
Su área es: 8.0

Información para T2:


Triangulo es: Estilo 2
La base y altura es: 8.0 y 12.0
Su área es: 48.0
POLIMORFISMO________________________________________________

CONCEPTO

El polimorfismo es una de las características fundamentales de la Programación Orientada a


Objetos y está estrechamente relacionado con la herencia.
Una jerarquía de clases, los métodos y clases abstractas, la sobreescritura de métodos y las
conversiones entre clases de la jerarquía sientan las bases para el polimorfismo. Es necesario
entender bien estos conceptos para comprender el polimorfismo. En esta entrada se explican y
se ven algunos ejemplos de herencia.
El polimorfismo se puede definir como la cualidad que tienen los objetos para responder de
distinto modo a un mismo mensaje.
Para conseguir un comportamiento polimórfico en un programa Java se debe cumplir lo
siguiente:
- Los métodos deben estar declarados (métodos abstractos) y a veces también pueden estar
implementados (métodos no abstractos) en la clase base.
- Los métodos debes estar redefinidos en las clases derivadas.
- Los objetos deben ser manipulados utilizando referencias a la clase base.

EJEMPLO

public class A extends B {


public void print() {
System.out.println("A");
}

}
public class B {
public void print() {
System.out.println("B");
}

}
public class C extends B {
public void print() {
System.out.println("C");
}

}
public class Main {
public static void main(String[] args) {
B[] bs = new B[3];
bs[0] = new B();
bs[1] = new A();
bs[2] = new C();
naivePrinter(bs);

private static void naivePrinter(B[] bs) {


for (int i = 0; i < bs.length; i++) {
bs[i].print();
}

Вам также может понравиться