Scala: Accessing a protected field when inheriting from a class in a different package

As a brief note, the Scala example at this URL ( is not 100% correct, and this code Scala 3 code shows the issue and solution:

package a:
    class ClassA:
        protected var aProtected = 1
        var a = 1

package b:
    import a.ClassA

    class ClassB extends ClassA:
        a = 2
        aProtected = 2                   // ClassB *can* access this field.
        def getAProtected = aProtected   // make that field available to others
                                         //   via this public method.

    object Main:
        def main(args: Array[String]): Unit =
            val b = ClassB()
            b.getAProtected   // compiles/works
            // b.aProtected   // does not compile

They correctly note that the variable I call aProtected can’t be accessed from the main method in the second package, but aProtected can be accessed by ClassB, which extends ClassA, though ClassB is in package b and ClassA is in package a.

So if you wanted to see an example of how to access a protected field in Scala code, where your class extends a class in a different package, and that original class has a protected field, I hope this example is helpful.