Предположим, у меня есть базовый класс с пакетом доступного члена:не удается получить доступ к члену класса в одном пакете
package testcase;
public class B
{
int b;
}
И это имеет подкласс:
package testcase.sub;
import testcase.B;
public class C
extends B
{
int c;
}
Теперь мне нужно, чтобы получить доступ к элементу поле из того же пакета, который определен в поле:
package testcase;
import testcase.sub.C;
public class A
{
void testcase(C c)
{
c.c = 0; // HINT
((B) c).b = 1; // FIRST
c.b = 2; // SECOND
}
}
EDIT: Я абсолютно понимаю, что A
не может получить доступ к c.c
и почему строка, помеченная HINT, не скомпилирована: C.c
видна только для кода той же упаковки и пока C.c
находится в упаковке testcase.sub
A
находится в testcase
.
Однако A
и B.b
оба в пакете testcase
так почему первое задание компиляции, а второй нет?
Есть ли A, B и C в одной упаковке? – Raedwald
Что заставляет вас думать, что 'testcase' - это тот же пакет, что и' testcase.sub'? –
@Raedwald Каждый класс имеет декларацию своего пакета. –