Para que seja possível herdar uma classe de outro pacote, ela precisa ser pública, correto? No caso seu construtor padrão assumirá o mesmo nível de acesso, se é public o construtor será public. Caso eu tenha:
package a;
public class A {
A(){
}
}
package b;
import a.A;
public class B extends A {
}
import b.B;
class Inheritance {
public static void main(String[] args) {
new B();
}
}
Baseado no conteúdo do treinamento, o construtor padrão da classe "B" será:
public B(){
super();
}
e o da classe "A", caso eu não tivesse declarado, ele assumiria o construtor padrão:
public A(){
super();
}
mas ao declarar o construtor conforme o código acima, seu modificador de acesso é package default, então minha dúvida é, porque esse código compila e executa?