Polimorfisme PDF

Title Polimorfisme
Course Programación Orientada a Objetos
Institution Universitat Politècnica de Catalunya
Pages 3
File Size 123.7 KB
File Type PDF
Total Downloads 9
Total Views 158

Summary

Download Polimorfisme PDF


Description

POO

Mar Vidal

Polimorfisme 

Herència:

Filla2 f = new Filla2();

Mare

f.cantar(); f.dibuixar();

+dibuixar()

Filla1

Filla2

+dibuixar() +jugar()

+dibuixar() +cantar()

Mare m = new Filla2(); m.dibuixar(); m.cantar(); //Error de compilació!

Mare m = new Filla2();

Mare

Filla2 f = (Filla2) m; +dibuixar() f.cantar();

Class Casting Filla1 g = (Filla1) m; Filla1

Filla2

+dibuixar() +jugar()

+dibuixar() +cantar()

g.jugar(); /*Error: m és Filla2 no Filla 1 */

Mare Mare m = new Filla2(); Filla2 f = new Filla2();

+dibuixar()

Filla1

Filla2

+dibuixar()

+dibuixar()

m.dibuixar(); f.dibuixar();

POO 

Mar Vidal

Taula comparativa class

abstract class

interface

Conté Atributs i Codi





No Només constants

Es poden crear referències del seu tipus







Es pot instanciar



No

No

Herència/implementació múltiple

No

No



Obligacions de les subclasses/classes implementadores



Cap

Implementar mètodes abstractes de la superclass

Implementar tots els mètodes de la interface

Classe abstracta Sintaxi

Formada per

public abstract class NomClasse

Atributs Mètodes Algun mètode abstracte public class Subclasse extends ClasseAbstracta

Herència

Mètode abstracte

La subclasse ha d'implementar obligatòriament els mètodes abstractes public abstract tipusRetorn nomMetode (TipusParam nomParam);

No té codi Es poden crear referències del seu tipus: ClasseAbstracta c = new Subclasse();

Atenció

No es pot instanciar: ClasseAbstracta c = new ClasseAbstracta();

No es pot fer herència múltiple

POO



Mar Vidal

Interfícies Sintaxi

Formada per

public interface NomInterface

Constants Mètodes abstractes public class ClasseImpl implements InterfaceF

Implementació

La classe implementadora ha d'implementar tots els mètodes de la interface public tipusRetorn nomMetode (TipusParam nomParam);

Mètode abstracte No té codi Es poden crear referències del seu tipus: InterfaceF f = new ClasseImpl();

No es pot instanciar: Atenció

InterfaceF f = new InterfaceF();

Es pot fer implementació múltiple public class ClasseImpl implements InterfaceF, InterfaceG, InterfaceH



Herència i implementació alhora

public class NomClasse extends SuperClasse implements InterfaceF...


Similar Free PDFs