コンパイルエラーではない

 Barクラスはstrを継承している

コンパイルエラー

 継承ではなく、クラス間のアクセス制限の問題
 Barクラスは、Fooクラスとは違うパッケージにあるので、foo.strにはアクセスできない

コンパイルエラーではない

 Barクラスは、strを継承している
 printメソッドの引数は、Bar型なので、bar.strにアクセスできる