Badr Benmammar
bbm@badr-benmammar.com
Programmation objet avec JAVA
Partie 2
Plan
Héritage
Classes abstraites
Interfaces
Modificateur final
Exception
Héritage de classe
public class Rectangle4 {
double x, y, largeur, hauteur;
Rectangle4 ( ) {
x = 0;
y = 0;
largeur = 0;
hauteur = 0;
}
Rectangle4 (double valX, double valY,
double valL, double valH) {
x = valX;
y = valY;
largeur = valL;
hauteur = valH;
}
double surface() {
return largeur * hauteur;
}
double perimetre() {
return 2*(largeur + hauteur);
}
}
public class Carre4 extends Rectangle4 {
Carre4(double valX, double valY,
double valCote) {
x = valX;
y = valY;
largeur = valCote;
hauteur = valCote;
}
double surface() {
return Math.pow(largeur, 2);
}
double diagonale() {
return largeur * Math.sqrt(2);
}
}
La classe Carre4 (fille ou sous-classe) hérite les
attributs et les méthodes de la classe Rectangle4 (re
ou superclasse).
La méthode surface est re-définie dans Carre4 et donc
masque la définition de surface de Rectangle4.
Héritage de classe
public class Prog35 {
public static void main (String args[]) {
Carre4 c;
c = new Carre4(40,40,100);
System.out.println("surface de c : "+c.surface());
System.out.println("perimetre de c : "+c.perimetre());
System.out.println("diagonale de c : "+c.diagonale());
}
}
Résultat:
surface de c : 10000.0
perimetre de c : 400.0
diagonale de c : 141.4213562373095
A l'appel de la méthode surface, celle-ci est d'abord
recherchée dans la classe Carre4 se trouve une
(re)définition.
A l'appel de la méthode perimetre, celle-ci est d'abord
recherchée dans la classe Carre4 : pas de définition; puis
elle est recherchée dans sa superclasse se trouve une
définition.
class Personne {
protected String nom;
protected int age;
Personne (String nom, int age)
{
this.nom=nom;
this.age=age;}
void setNom (String nom) {
this.nom=nom;
}
void setAge (int age) {
this.age=age;
}
String getNom ( ) {
return nom;
}
int getAge ( ) {
return age;
}
public String toString( )
{
return nom + " (" + age + ")";
}
}
Exemple : sous-classe avec nouvel attribut
class Formateur extends Personne {
private boolean formation;
Formateur (String nom, int age,boolean formation)
{
super (nom,age);
this.formation=formation;
}
boolean getFormation()
{
return formation;
}
void setFormation(boolean formation)
{
this.formation=formation;
}
public String toString() {
if (formation)
return super.toString() + " a une formation";
else
return super.toString() + " n'a pas de formation";
}
1 / 26 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !