Files
saselang-bible/chapters/008-classes-et-object.md
2026-09-13 21:59:15 +02:00

79 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 8. Classes et `Object`
## 8.1 Héritage de base — V1 REQUIS — FIGÉ
Toutes les classes héritent implicitement de `Object`, sauf `Object` lui-même.
Les primitives, structs, enums, tuples et unions n'héritent pas artificiellement de `Object`.
## 8.2 Héritage de classes — V1 REQUIS — FIGÉ
Héritage de classe unique uniquement.
Une classe concrète doit être explicitement :
```text
open
ou
final
```
Une classe abstraite est :
```text
abstract
```
`abstract`, `open` et `final` sont mutuellement exclusifs au niveau classe.
## 8.3 Receivers — V1 REQUIS — FIGÉ
```text
this instance courante
super instance de la classe parente immédiate
cls classe courante dans une clsmethod
parent classe parente immédiate dans une clsmethod
```
Pas de :
```text
super::super
parent::parent
```
## 8.4 Accès membre — V1 REQUIS — FIGÉ
Les membres sont accédés explicitement avec `::` :
```text
this::field
token::kind()
Type::member
super::method()
```
`.` qualifie les namespaces/modules/types ; `::` accède à un symbole contenu.
Ils relèvent de la grammaire et ne sont pas surchargeables.
## 8.5 Identité d'instance — V1 REQUIS — FIGÉ
`Object` fournit une opération intrinsèque non overridable :
```text
const method sameIdentity(const Object other) -> bool
```
Cette méthode intrinsèque non overridable, portée par `Object`, teste lidentité de référence : deux accès sont identiques sils désignent exactement le même objet.
`sameIdentity()` nest pas équivalent à `==`, qui exprime légalité logique lorsquelle est disponible.
Exemple : deux objets différents peuvent être logiquement égaux mais ne pas être la même instance.
`Object` n'implémente pas automatiquement `OpEqual` ni `OpPartialEqual`.
Les classes ne reçoivent donc aucune égalité de valeur automatique.
---