Se invece ho
codice:
class A {
   void metodo1(int x) {
       System.out.printll("Istruzione 1, valore x: " + x );
       metodo2(x);
   }
   void metodo2(int y) {
       System.out.println("Istruzione 2, valore x: " + y);
   }
}

class B extends A {
   void metodo2(int x){
       System.out.println("Istruzione 3, valore x: " + x);
       super.metodo2(x);
   }
}

class ProvaExtends {
   public static void main (String[] args) {
   A a = new A();
   B b = new B();
   A c = new B();
   a.metodo2(10);
   b.metodo1(20);
   c.metodo1(30);
   }
}
posso scrivere A c = new B() ma non B c = new A(), giusto? Se si perchè?