Я сделал небольшой поиск в Интернете и узнал, что модификатор доступа по умолчанию конструктора такой же, как и уровень доступа класса, но посмотрите.Модификатор доступа по умолчанию для конструктора в Inheritance
Вот один класс
package package2;
public class TestClass1 {
TestClass1()
{
System.out.println("In parent's contructor");
}
}
и вот другой, который наследует от предыдущего
package package2;
public class TestClass2 extends TestClass1 {
TestClass2()
{
System.out.println("In TestClass2's contructor");
}
}
Но когда я пытаюсь создать объект TestClass2
import package2.*;
class MainClass {
public static void main(String[] args)
{
TestClass2 t2 = new TestClass2(); //Says the constructor TestClass2() is not visible.
}
}
I не понимаю, оба класса TestClass1
и TestClass2
имеют p публичный доступ, поэтому их конструкторы также должны быть неявно публичными. Какую концепцию мне не хватает? оо
Где вы читали спецификатор доступа по умолчанию конструктора является то же самое, что и у его класса? – Codebender
'Конструктор по умолчанию! = Спецификатор доступа по умолчанию для конструктора. JLS говорит о неявном конструкторе (тот, который создается автоматически, если вы не определяете его в своем классе). – Codebender
@Salim - Вы тоже хотели бы поддержать ответ! –