C - trivial
D - A constructor without parameter MUST always exist. That's why sometime you declare a constructor like
private A() {}; in order to not make the compiler create it (also if you do not need it).
consider a
class A {
public A() {} //default constructor
public A(
String par) {} // another constructor
}
class B extends A{
public B() { super("ciao"); } //default constructor (so answer B is wrong)
public A(String par) {} // another constructor
}
A - is wrong because inside the method the varable are local
B - is wrong because B have a default constructor of the subclass can call a not default constructor of the parent
E - is wrong because a default constructor is created ALWAYS if it is not explicetely declared.