Члены класса, имеющие доступ по умолчанию, доступны для всех классов в одном пакете. В случае, если класс расширяет один с возможностью сказать поле с видимостью по умолчанию, то, если он находится в том же пакете, он будет иметь доступ к своим унаследованным полям
package original;
public class A{
int x = 1;
}
package original;
public class B extends A{
void test(){
x = 2;// works because B inherited `x` and it is visible here
}
}
но если расширение класса создаются в другом пакете затем оригинал, члены доступ по умолчанию недоступен.
package other;
class Outsider extends original.A{
void test(){
x = 2;// compilation error, x is not visible here
}
}
В случае, если вы хотите, чтобы этот посторонний класс скомпилировать вам нужно будет сделать x
protected
так что это может быть унаследован этим классом.
вы можете сделать простые практические упражнения и найти ответ. – Jayasagar
* Каждое поле * наследуется, даже 'private'. Тот факт, что подкласс не может получить к нему доступ, не означает, что его нет. Тем не менее, каждый экземпляр подкласса будет иметь все поля из его базового класса, то есть зарезервированной памяти для него, и если подкласс не сможет получить к ним доступ, он все равно может вызывать унаследованные доступные методы, которые могут их использовать. – Holger
Кстати, как может такой вопрос быть «срочным» для кого-то, у кого нет компилятора? – Holger