09.02.2017 Views

creez-des-applications-pour-android

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.1 L’univers Android<br />

}<br />

float vitesse;<br />

// Dans un autre fichier<br />

// Une Voiture est un Vehicule<br />

class Voiture extends Vehicule {<br />

}<br />

// Dans un autre fichier<br />

// Une Moto est aussi un Vehicule<br />

class Moto extends Vehicule {<br />

}<br />

// Dans un autre fichier<br />

// Un Cabriolet est une Voiture (et par conséquent un Véhicule)<br />

class Cabriolet extends Voiture {<br />

}<br />

Le mot-clé abstract signifie qu’une classe ne peut être instanciée.<br />

[[information]] | Une méthode peut aussi être abstract, auquel cas pas besoin d’écrire son corps.<br />

En revanche, toutes les classes héritant de la classe qui contient cette méthode devront décrire<br />

une implémentation de cette méthode.<br />

Pour contrôler les capacités <strong>des</strong> classes à utiliser les attributs et métho<strong>des</strong> les unes <strong>des</strong> autres, on<br />

a accès à trois niveaux d’accessibilité :<br />

— public, <strong>pour</strong> qu’un attribut ou une méthode soit accessible à tous.<br />

— protected, <strong>pour</strong> que les éléments ne soient accessibles qu’aux classes filles.<br />

— Enfin private, <strong>pour</strong> que les éléments ne soient accessibles à personne si ce n’est la classe<br />

elle-même.<br />

On trouve par exemple :<br />

// Cette classe est accessible à tout le monde<br />

public abstract class Vehicule {<br />

// Cet attribut est accessible à toutes les filles de la classe Vehicule<br />

protected roue;<br />

}<br />

// Personne n'a accès à cette méthode.<br />

abstract private void decelerer();<br />

Enfin, il existe un type de classe mère particulier : les interfaces. Une interface est impossible à<br />

instancier et toutes les classes filles de cette interface devront instancier les métho<strong>des</strong> de cette<br />

interface — elles sont toutes forcément abstract.<br />

//Interface <strong>des</strong> objets qui peuvent voler<br />

interface PeutVoler {<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!