En Java, le mot-clé final peut être utilisé
lors de la déclaration d’un attribut, d’une méthode, ou d’une classe. Les trois
cas ont des significations différentes, mais une idée commune : empêcher que
quelque chose soit modifié.
Une classe final
est une classe qui ne peut pas avoir de filles. Une classe final ne peut pas être
étendue : le mécanisme d'héritage est strictement bloqué. Aucune autre
possibilité ne peut nous permettre d'hériter d'une classe déclarée final. Un
exemple d'une classe Employee qui peut
hériter de la classe Person et qui génère
une erreur lorsque la classe Person est déclarée final :
Voyons ce que nous propose Scala ...
Scala sealed
Scala sealed
Scala nous offre un peu
plus de souplesse avec le mot clé sealed.
La documentation Scala nous donne une idée sur son utilisation :
« A sealed class may not
be directly inherited, except if the inheriting template is defined in the same source file as the inherited class. However, subclasses
of a sealed class can inherited anywhere »
sealed peut
être utilisé à la fois sur une classe et sur un trait et annonce au compilateur que
les classes filles sont toutes dans le même fichier. Le mécanise d'héritage
n'est donc pas bloqué. On n'exige simplement que les classe filles soient déclarées
dans le même fichier. Un exemple pour illustrer mes propos :
La classe Employee peut, en effet, hériter de la classe Person déclarée sealed, lorsque les deux classes sont dans le même fichier. Une erreur est générée lorsqu'une classe d’un autre fichier tente d’hériter de la classe Person …(exemple de la classe Employee déclarée cette fois-ci dans un fichier autre que le fichier de la classe Person) ....
Mystino Casino | 100% Up To ¥1200 + 100 Free Spins
RépondreSupprimerMystino is an online ミスティーノ casino 카지노사이트 that gives you the chance to win starvegad up to x1200 in free spins. Use the sign-up code MONDINO on the website.