Implement class fields. Restrict assigning new fields to an instance. Fields must be defined on the class to access or write to.
Example
class Parent {
let a = 123;
let b = 456;
}
class Child extends Parent {
let b = 789;
}
let parent = Parent();
print parent.a; // out: 123
print parent.b // out: 456
let child = Child();
print child.a; // out: 123
print child.b; // out: 789
print parent.c; // out: NameError: name "c" isn't defined on class "Parent"
parent.c = 1000; // out: NameError: name "c" isn't defined on class "Parent"
Requirements
Fields are a superset of assignment statements e.g. let prefix, optional initialization with value let value = default;
Field names must not conflict with method names
Fields are inherited
Fields can be initialized by creating a constructor/init method
Implement class fields. Restrict assigning new fields to an instance. Fields must be defined on the class to access or write to.
Example
Requirements
let
prefix, optional initialization with valuelet value = default;