Наследование приватных полей и методов?
У класса "B" нету поля "а", и я читал что приватные поля не наследуются, как можете это объяснить?
Это значит, что такое поле у B как бы есть, но из-за того что оно приватное - доступ к нему имеют только методы родителя.
Класс B в вашем случае передаёт значение в конструктор родителя, чтобы инициализировать это поле.
Подкласс не наследует закрытые члены своего родительского класса. Однако, если у суперкласса есть общедоступные или защищенные методы для доступа к его частным полям, они также могут использоваться подклассом. Так же, если класс-потомок является вложенным классом по отношению к классу-родителю, то имеет доступ ко всем частным полям и методам класса-родителя. В вашем же случае вы обязаны вызвать конструктор родительского класса в классе-потомке. Это не значит что вы получили доступ к приватному полю класса-родителя