heritage - index 1 ITI 1521 Introduction ` a...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: index.pdf January 25, 2010 1 ITI 1521. Introduction ` a l’informatique II * Marcel Turcotte ´ Ecole d’ing´ enierie et de technologie de l’information Version du 25 janvier 2010 R´ esum´ e – H´ eritage (partie 2) – Polymorphisme * . Ces notes de cours ont ´ et´ e con¸cues afin d’ˆ etre visualiser sur un ´ ecran d’ordinateur. Circle Compl´ etons l’impl´ ementation de la classe Circle . O`u cr´ ee-t-on l’impl´ ementation de la m´ ethode area() ? Elle sera d´ eclar´ ee dans la classe Shape ou la classe Circle ? Circle public class Circle extends Shape { private double radius; public double getRadius() { return radius; } public double area() { return Math.PI * radius * radius; } public void scale( double factor ) { radius *= factor; } } Rectangle De mˆ eme, compl´ etons l’impl´ ementation de la classe Rectangle . O`u cr´ ee-t-on l’impl´ ementation de la m´ ethode area() ? Elle sera d´ eclar´ ee dans la classe Shape ou la classe Rectangle ? Rectangle public class Rectangle extends Shape { private double width; private double height; // ... public double area() { return width * height; } public void scale(double factor) { width = width * factor; height = height * factor; } } Il ne faudrait pas avoir l’impression que l’h´ eritage se limite aux classes qu’on d´ efinit soi-mˆ eme. Au contraire, l’h´ eritage est souvent utilis´ e afin de sp´ eer les classes de la biblioth` eque de Java. import java.awt.TextField; public class TimeField extends TextField { public Time getTime() { return Time.parseTime( getText() ); } } // java.lang.Object // | // +--java.awt.Component // | // +--java.awt.TextComponent // | // +--java.awt.TextField // | // +--TimeField index.pdf January 25, 2010 2 Polymorphisme Du grecque polus = plusieurs et morphˆ e = formes, signifie donc qui a plusieurs formes. 1. Polymorphisme ad hoc (polymorphisme des traitements, surcharge de nom) : un mˆ eme nom de m´ ethode est associ´ e ` a des blocs d’´ enonc´ es diff´ erents 2. Polymorphisme universel (polymorphisme de donn´ ees) : un identificateur (une variable r´ ef´ erence) est li´ e ` a des donn´ ees de types diff´ erents par une relation de sous-type Surcharge ( overloading ) Java nous permet la d´ eclaration de plusieurs m´ ethodes ayant le mˆ eme nom, mais ayant des signatures diff´ erentes (la signature d’une m´ ethode est constitu´ ee du nom de la m´ ethode ainsi que de la liste des param` etres formels ; elle ne contient cependant pas le type de la valeur de retour). On l’utilise souvent pour les constructeurs : Shape() { x = 0.0; y = 0.0; } Shape( int x, int y ) { this.x = x; this.y = y; } ⇒ On appelle parfois ceci le polymorphisme ad hoc ....
View Full Document

{[ snackBarMessage ]}

Page1 / 9

heritage - index 1 ITI 1521 Introduction ` a...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online