4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
||||||||||||||||
1 | ||||||||||||||||
Наследование и модификатор доступа protected28.10.2019, 10:15. Показов 1363. Ответов 14
Метки нет (Все метки)
Здравствуйте всем. У меня есть 3 класса, которые каждый наследуется друг от друга, но третий лежит в другом пакете.
0
|
28.10.2019, 10:15 | |
Ответы с готовыми решениями:
14
Модификатор доступа protected. Не понятен смысл Модификатор доступа protected перед именем класса Модификатор доступа для конструктора Для чего написано: protected String name; protected int age;? |
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||||
28.10.2019, 11:59 | 2 | |||||
да, так оно и есть.
weight = 10 будет работать, но это будет скорее всего не тот эффект который нужен
0
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
28.10.2019, 12:25 [ТС] | 3 |
KEKCoGEN, но разве это не противоречит тому описанию самого модификатора.
Я класс наследник в другом пакете как в моем примере и я хочу использовать доступную мне переменную от класса наследника. Почему тогда я не могу этого сделать?Все равно до конца не могу сообразить. Заучить понятно можно но хочется понимать этот момент. Можете помочь истолковать? Добавлено через 20 минут от класса родителя я имел ввиду , описался.
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
28.10.2019, 15:05 | 4 |
АнатолийШ, смотри на эти переменные как будто они у тебя в классе объявленны и ты ни от кого не наследуешься. Тогда логично что к этим переменным изнутри класса ты можешь обращаться, а снаружи - нет
0
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
28.10.2019, 15:31 [ТС] | 5 |
KEKCoGEN, подождите. Так в том то и дело что если я внутри класса объявил переменную private только так я не могу ее использовать во всех остальных случаях все норм. Или protected как бы становится private если я использую класс наследник в другом пакете?
0
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
28.10.2019, 15:41 [ТС] | 7 |
Gungala, я все это читал. Просто сейчас при изучении повторно этих вопросов у меня в голове нормально не хочет складываться картина почему не компилируется код выше что я написал.
По идеи раз я класс наследник и наследую переменную то я должен мочь ее извлечь из своего класса и делать что захочу, а тут получается что нет. И вот как то странно для меня это все.
0
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
28.10.2019, 16:24 [ТС] | 9 |
Gungala, ну вот это я пока осознать и не могу, это неявно для меня
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
28.10.2019, 16:34 | 10 |
и не надо осознавать. На практике в 90% случаев все равно будет private и public. Вот когда потребуется тебе что-то наследовать и private не хватит, вспомнишь про protected.
0
|
Модератор
12464 / 7487 / 1756
Регистрация: 25.07.2009
Сообщений: 13,771
|
||||||
29.10.2019, 00:05 | 11 | |||||
АнатолийШ, если это как-то прояснит картину...
Код
[andrew@easybook classes]$ javac TestProtected.java [andrew@easybook classes]$ java TestProtected 10 [andrew@easybook classes]$
0
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
29.10.2019, 14:23 [ТС] | 12 |
easybudda, опять таки вот это понятно, потому что тут использован модификатор public. Скорее пока не понятно почему я напрямую к переменной в данном случае не могу обратиться хоть у меня и потомок.
0
|
Модератор
12464 / 7487 / 1756
Регистрация: 25.07.2009
Сообщений: 13,771
|
|
29.10.2019, 14:31 | 13 |
Потому, что переменная не объявлена с модификатором public в родительском классе, а в потомке она вообще не объявлена.
(К.О. подсказал)
1
|
4 / 4 / 0
Регистрация: 26.06.2016
Сообщений: 115
|
|
29.10.2019, 14:44 [ТС] | 14 |
easybudda, а теперь понятно. Т.е. она неявно присутствует и с ней работать можно, но если с ней работать уже не внутри класса , в где то в другом пакете, то тут уже нельзя, т.к. явно её нету. Понял. Спасибо
0
|
Модератор
12464 / 7487 / 1756
Регистрация: 25.07.2009
Сообщений: 13,771
|
|
29.10.2019, 14:56 | 15 |
АнатолийШ, ну, можно и так сказать.
Не по теме: "His name is Robert Paulson! (c)"
0
|
29.10.2019, 14:56 | |
29.10.2019, 14:56 | |
Помогаю со студенческими работами здесь
15
Модификатор доступа protected Модификатор protected internal Private/protected/public наследование Модификатор доступа private Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |