Existe-t-il une méta du compilateur pour la déclaration de classe, qui empêche la création d'une instance de classe avant de l'étendre? En d'autres termes - une sorte d'opposé de @:final meta.

Comme ça (dernière ligne de code):

class A {
    // ...
}

class B extends A {
    // ...
}

// ...
var b = new B(); // OK
var a = new A(); // induce compiler-error
3
madneon 23 juil. 2017 à 15:11

2 réponses

Une façon d'y parvenir consiste à créer un constructeur de classe privé:

class A {
    private function new() {
        // ...
    }
}

// ...
var a = new A(); // Error: Cannot access private constructor
1
madneon 23 juil. 2017 à 12:13

Ne déclarez tout simplement pas de constructeur pour la classe A

6
KevinResoL 23 juil. 2017 à 17:04