Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
 Аватар для artem1403
15 / 11 / 7
Регистрация: 24.03.2014
Сообщений: 57

Как запретить наследовать переменные класса?

22.05.2014, 09:26. Показов 9874. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Изучаю одновременно C# и Java (простите если не в ту ветку написал)

Ситуация: Есть класс (A), у которого есть 10 переменных, делаю производный класс от него (B extends A).

Вопрос: Как в базовом классе запретить наследовать 4 переменные?
В C# это решается словом "sealed".
Поискал по форумам, 100 раз на глаза попалось слово "final", думаю: - "хорошо, сделаю эти поля final", сделал, в классе B (для проверки) объявляю переменную с таким же именем и NetBeans мне пишет "Поле скрывает другое поле".

Направьте пожалуйста!

Что хочу: закрыть 4 переменные для наследования.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2014, 09:26
Ответы с готовыми решениями:

Как при создании экземпляра класса инициализировать переменные вложенного класса
Здравствуйте. Подскажите пожалуйста как при создании екземпляра класа инициализировать переменные вложеного класа. Добавлено через 22...

Как наследовать сразу 2 класса?
У меня есть 3 класса для игры "Симулятор бомжа" - Car ( Автомобиль ) Person ( Класс игрока со всеми полями Money, Health тд. ) Job (...

Как правильно наследовать методы класса
#include <iostream> using namespace std; class Pair { protected: int first; // первое число int second; ...

5
12 / 12 / 2
Регистрация: 28.04.2014
Сообщений: 31
22.05.2014, 09:44
Переменные нельзя "наследовать". Можно:
1) Запретить изменение переменной после выхода из конструктора. Для этого используют ключевое слово final.
2) Закрыть прямой доступ к переменной из наследника. Для этого используют ключевое слово private.
Все.
1
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
22.05.2014, 09:49
private
Хоть и наследуются private переменные, но доступа к ним из потомков не будет
0
 Аватар для artem1403
15 / 11 / 7
Регистрация: 24.03.2014
Сообщений: 57
22.05.2014, 10:32  [ТС]
Если сделать переменную private, то к ней не будет доступа через объект класса!
Единственный выход для каждой такой переменной делать 2 метода (getPerem1 и setPerem1 и т.д.) ?

Добавлено через 34 минуты
Спасибо всем, вопрос решил по-другому.
Решено переделать структуру так, чтобы не создавать базовый класс и класс наследник (будет только 1 класс).

Если кому интересно, зачем это вообще делать:
У меня есть класс, в который просто заливаются данные из таблицы на SQL Server-e, данных очень много (около 40 млн строк).
Далее этот массив я разбиваю на блоки по 30 строк, при этом ключевые поля (вообще их 4, но есть поля (еще 9 шт), имеющие одинаковое значение в разрезе всего блока), так вот, чтобы эту информацию не дублировать 40 млн раз, хотел вынести их в отдельное поле. Вот такие дела.
0
12 / 12 / 2
Регистрация: 28.04.2014
Сообщений: 31
22.05.2014, 10:33
Объясните, что значит "закрыть переменные от наследования". Я вот не понимаю, что это значит :-) Термин "наследование" применяют к методам и классам. Например, объявив класс или метод final вы запрещаете либо дальнейшее наследование от класса, либо override метода соответственно. А с к переменным то это как применимо?
В этом плане джавовский final является полным аналогом sealed. Единственное, sealed так же можно применять к свойствам, которых в Java нет. Но по сути свойство - это тот же метод.
Поэтому не совсем понятна ваша цель - чего вы хотите добиться?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.05.2014, 13:16
Цитата Сообщение от artem1403 Посмотреть сообщение
В C# это решается словом "sealed"
Если вы приведете пример на C# то на Java перевести его будет несложно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2014, 13:16
Помогаю со студенческими работами здесь

не получается наследовать переменную из род. класса
Задача такая. хочу хранить глобальные переменные в классе самого верхнего уровня. Пример: class Main{ //хранит все ошибки,...

Можно-ли наследовать класс, в котором определен объект текущего класса?
Подскажите, пожалуйста, можно-ли делать так: class A { public: B objB; }; class B : public A {};

От класса String наследовать новый класс, который имеет проверку на превышение размера строки
Доброго времени суток! Решаю задачи из учебника Роберта Лафоре ООП в C++. До этой задачи все решал сам и успешно, а тут встал в...

Переменные экземпляра, класса, константы и переменные readonly
Как эту задачу записать в C#? Переменные экземпляра, класса, константы и переменные readonly: – Ф.И.О., – должность, – базовый...

Как запретить использование метода из объекта класса, содержащегося в классе?
class a { public: void set(int x, int y) { mX = x; mY = y; } int getX() { return mX; } int getY() { return mY; }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru