class Base { protected x: string; method() { this.x; // OK, accessed within their declaring class } } class Derived extends Base { method1() { this.x; // OK, accessed within a subclass of the declaring class super.x; // Error, x is not public } }