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

1.8 KiB
Raw Permalink Blame History

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 :

open
ou
final

Une classe abstraite est :

abstract

abstract, open et final sont mutuellement exclusifs au niveau classe.

8.3 Receivers — V1 REQUIS — FIGÉ

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 :

super::super
parent::parent

8.4 Accès membre — V1 REQUIS — FIGÉ

Les membres sont accédés explicitement avec :: :

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 :

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.