У меня есть 2 классовЧастные поля, доступные в подклассах
class A {
private int count;
}
class B extends A {
//need to access count here
}
Какие стандартные способы можно использовать для доступа к нему?
У меня есть 2 классовЧастные поля, доступные в подклассах
class A {
private int count;
}
class B extends A {
//need to access count here
}
Какие стандартные способы можно использовать для доступа к нему?
вы можете объявить поле protected
, то он будет доступен для всех подклассов и пакет локальных классов.
Вы также можете получить геттеры/сеттеры (общая практика), если это поле может быть видимым для всех. Затем вы просто вызываете метод getCount()
, чтобы получить счет.
смотрите здесь getters/setters example
Пойду с геттером, спасибо за ссылку. – user2509983
Либо сделать count
protected
, либо добавить метод getCount()
в A
.
class A {
private int count;
public int getCount(){
return count;
}
}
class B extends A {
//need to access count here
}
Java предотвращает наследование частных полей для суб-класса. Если вы хотите получить доступ к полям, вы также можете использовать методы оценки, то есть методы getter, или вы можете изменить тип доступа к полю защищенным или общедоступным. Опять же, защита будет работать только в том случае, если файл подкласса находится в одном каталоге. Если у вас есть файлы в отдельном каталоге, вам нужно будет изменить тип доступа к полю Public
По каталогу, я думаю, вы имеете в виду пакет, и в этом случае ваше описание 'protected' неточно, но вместо этого описывает' package-private' – femtoRgon
геттеры/сеттеры - это слова, которые вы ищете. Или сделать его «защищенным». – Maroun
. , , , , protected –
Если 'A' и' B' находятся в одном пакете, тогда пакет private - по умолчанию, поэтому нет ключевого слова - было бы мягко предпочтительнее 'protected' – emory