class A{
public void AAA(){}
}

class B extends A{
public void BBB(){}
}

public class javatest2 {
public static void main(String arg[]){
A hoge1= new A();
B hoge2= new B();
A hoge3= new B();
B hoge4= new A(); //型の不一致: A から B には変換できません ??1

hoge1.AAA();
// hoge1.BBB(); //メソッド BBB() は型 A で未定義です
hoge2.AAA();
hoge2.BBB();
hoge3.AAA();
// hoge3.BBB(); //メソッド BBB() は型 A で未定義です ??2


上の??1 と??2 がわかりません