L'abstraction
Héritage d'une classe abstraite
Une classe abstraite est un type de classe possédant des méthodes définies mais qui ne sont pas implémentées. On peut dire que c'est un mixte entre une classe et une interface dans le même objet.
Par exemple, la classe Document
permet d'avoir un fichier de configuration auquel on y attachera une propriété et une valeur. On sera assuré de pouvoir avoir le fichier en texte, mais on ne dit pas comment. Ce sera aux classes héritées à le définir.
classDiagram
Document <|-- Json
Document <|-- Yaml
class Document {
String extension
String nom
String propriete
String valeur
Document(nom, extension, propriete, valeur)
getPropriete() String
getValeur() String
*getTexte() String // méthode abstraite
}
class Json {
Json(nom, propriete, valeur)
}
class Yaml {
Yaml(nom, propriete, valeur)
}
Par la suite, les classes Json
et Yaml
devront hériter de la classe Document
ainsi que d'implanter correctement la méthode getTexte()
selon leur format respectif :
Document.java | |
---|---|
Json.java | |
---|---|
Yaml.java | |
---|---|
Instancier une classe abstraite
Une classe abstraite peut également être instanciée. Cependant, comme elle possède des méthodes à implanter, celles-ci devront être définie lors de la création de la nouvelle instance :