Класс B объявляет статический член A класса B, что означает, что он не связан с экземплярами класса, но доступен всем экземплярам класса.Каждый экземпляр может обновить его, а другие увидят обновление.
Класс C объявляет нестатический член A класса C, что означает, что он связан с экземпляромкласс.Каждый экземпляр имеет своего члена класса А.Изменение одного не повлияет на другие.
Поскольку A является общедоступным как в классе B, так и в классе C, любой может получить доступ к объекту класса A в соответствии с описанными правилами.
Кстати, если fooобъявленный как static, foo не связан ни с одним экземпляром класса A. Таким образом, даже если C содержит нестатический A, сам foo будет статическим и доступным через любой экземпляр B или C.