|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|||||||||||||||||||||
Люди не могу понять что это?05.06.2013, 08:47. Показов 2481. Ответов 15
Метки нет (Все метки)
Яву учу где-то 3 месяца уже и вот столкнулся вот с таким не понятным примеров :
Есть 3 класса Animals Dogs и Cats Dogs и Cats наследуються от Animals
Dogs Конструктор DogsEX: Dogs Конструктор : Cats Cats Конструктор CatEX: Cats Я ем как : Dogs Я ем как : Cats Как видно Dogs и Cats переопределяют метод Eat Но вот одно но ! Есть статический ArrayList<Animals> который в деф конструкторе Animals до кладет ссылку this в себя Но вот что мне не понятно : Как метод eating() вызывает полиморфные методы Cats и Dogs ??? Если в дефолтном конструкторе я указал ссылку this тоесть на данный момент , и так же как объект типа class в конструкторе Animals как то становиться объектом типо Dogs или Cats??? Я голову ломаю , не могу разобраться ... что же я упустил? P.S пример написал сам по типо другого примера... Добавлено через 7 минут Я знаю что сначала вызываеться Конструктор род класса затем вызывающего класса (тоесть дочернего), но Как Дефолтный Конструктор родительского класса становиться Дочерним ?? class.getSimpleName(); в конструкторе Род класса указывает на Дочерние классы... Объясните пожалуйста в чем дело ?) Добавлено через 11 часов 24 минуты Что не кто не знает? Если не понятный пример я могу написать по проще и без всяких class
0
|
|||||||||||||||||||||
| 05.06.2013, 08:47 | |
|
Ответы с готовыми решениями:
15
Не могу понять что это за операция? Не могу понять, что это за реализация ORM и как это работает
|
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 05.06.2013, 09:17 | |
|
Он НЕ становиться.
Они работают с объектами через и-с Animals, пользуясь только его методами ....
1
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
||
| 05.06.2013, 09:24 [ТС] | ||
|
0
|
||
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 05.06.2013, 10:24 | |
|
Вы путаете и-с и его реализацию.
Смотрите ... какая разница какой класс в и-се ? Главное при обращении к и-су - это параметры метода .. как он реализован - нас не касается никаким боком. Дальше - о реализации. Она никак не касается того, что в род. классе метод абстрактный ... с помощью this мы обращаемся к ТЕКУЩЕМУ объекту и работаем с ним ВНУТРИ. Добавлено через 1 минуту По к-ру - вообще непонятен суть Вашего вопроса. А почему он должен выдавать ИНОЕ ? Ведь у нас идет порождение класса Dogs и вызывается соот. к-р ...
1
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|
| 05.06.2013, 10:41 [ТС] | |
|
Объясните пожалуйста что такое "и-су" и "к-ру" ?? Я не понял... Вроде "к-ру" это конструктор? а "и-су"?
Добавлено через 4 минуты [quote]Ведь у нас идет порождение класса Dogs и вызывается соот. к-р ...[/quote="edwin3d"] Но ведь конструктор Animals ,а не Dogs или Cats ...и класс другой должен быть ? Или же при объявлении Dogs extends Animals , Dogs сразу же получает и содержит Конструктор Animals? Тоесть дефолтный конструтор Animals становиться Дефолтным к-су Dogs? Тогда зачем при вызове к-ра Dogs вызывается сначало Деф-конструктор Animals , а затем Dogs? Добавлено через 5 минут Так уже начинаеться проясняться ... Значит this указывает на ТЕКУЩИЙ объект а не на КЛАСС? поэтому в статик методах нельзя использовать this... Но вот что не понятно как же в конструкторе Animals создаеться и добовляеться объект типа Dogs и Cats? Ведь получаеться при вызове конструктора Animals создаеться Объект Animals? Но как я знаю нельзя создать объект Абстрактного класса ... ааааа Мозг зарветься ща_)
0
|
|
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 05.06.2013, 10:52 | |
|
1) Интерфейс (и-с)
2) Конструктор (к-р) почему объект должен быть ДРУГОЙ ? .... мы создаем экземпляр класса Dogs. И потом помещаем его в список. Но при вызове eating() и т.д. мы с ним работаем через интерфейс Animals ... но сам объект от этого НЕ перестает быть Dogs. Теперь о порядке вызовов к-ров. 1) Сперва вызывается Animals 2) Потом уже Dogs Но тем не менее, при вызовах к-ра идет работа именно с экземпляром класса Dogs.
1
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|||||||||||||||||||||||
| 05.06.2013, 12:58 [ТС] | |||||||||||||||||||||||
|
Насчет интрефесов... Откуда тут интерфесы?? У меня только абстрактный класс Animals но не интрейфес... или что я не понял? Добавлено через 2 минуты Добавлено через 4 минуты Как я понимаю : Сначало создаеться объект Animals (не понимаю как если Abstract классы не могу иметь эеземпляров) Затем создаеться Объект Dogs и в него так сказать Интегрируеться объект Animals ,что бы все его методы и переменные могли использоваться в дочерним классе... Я правильно понимаю? Добавлено через 14 минут Вот сделал болле простой пример: Класс Animals:
Конструктор Animals!!! вызываеться: Dogs Конструктор Animals!!! вызываеться: Cats Конструктор Animals!!! вызываеться: Animals Я ем как : Dogs Я ем как : Cats Я ем как :Animals Конструктор Dogs Конструктор Cats Ещё бывает что сначало вызываеться Конструктор Dogs а потом к-су Animals (редко),я так понял это из-за потоков ... И ещё как видем сначало создаються к-ры в Animals затем выводиться методом Eating все методы объектов в списке и ТОЛЬКО ЗАТЕМ вызываеться к-торы дочерних классов ! КАК ??? ЧТО ЭТО?) Добавлено через 37 минут Вроде бы я понял ... Если мы пишем ключевое слово extends <Объект> то мы просто копируем все члены класса (методы+ поля) родительского класса при том и Дефолтный КОНСТРУКТОР который теперь находиться уже в дочерним классе , а не в род классе! И поэтому при ссылке this добовляеться текущий объект,тоесть Dogs , или Cats , потому что Класс Animals ВОБЩЕ не вызываеться ! все что в нем есть , есть и в Дочерних классах! И как помним список у нас статический и при вызове в конструкторе Animal который мы уже знаем унаследован и находиться в Dogs или Cats и статические методы не наследуються , они находяться в 1 экземпляре ! и когда мы вызываем в деф конструкторе list.add(this); На самом деле мы вызываем Animals.list.add(this); просто это явно не видно ! Правильно ли я рассуждаю? Добавлено через 28 минут Теперь вроде разобрался... я думал привызове super(); Создаеться объект типа род класс и вызываеться его конструктор или типо того ... и я не не знал что КОНСТРУКТОРЫ тоже НАСЛЕДУЮТЬСЯ тоесть как бы они тоже методы и все конструкторы род класса наследються Дочерними классами... Вот в чем была моя проблема? Я думал что Конструкторы род класса вызываються от балды и даже не задумовался об этом и на самом деле рпи вызове дочернего класс (точней его экзеемпляра) мы Вызываем Род класс кторым он и являеться (is-a впрямом смысле ,а я думал это в переносном ) только с новыми методами если они есть и новым именим класса... Кто нибуть ответьте правильно я рассждаю плиз) Ото не могу дальше нечего делать) Постоянно думаю об этом) Добавлено через 11 минут Ещё Точней ))) Я думал что при вызове у объекта метод или переменную Род класса то Java загружает класс Род класса и с него все это использует не посрдественно ) кароче бред полный) Сорри за флуд) Кто нить ответит мне ааа?)
0
|
|||||||||||||||||||||||
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
| 05.06.2013, 13:20 | |
|
0
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
||
| 05.06.2013, 14:05 [ТС] | ||
|
Поскольку мы не определяли вообще никакого спецификатора, а это по умолчанию равно ключевому слову public, то подкласс SiemensM55, будет иметь доступ ко всем членам своего суперкласса Siemens. Разве дефолтный модификатор равен public??? Добавлено через 17 минут Но это все я знаю то ... Просто я не знал как Дочерний класс обращаеться к методам Супер класса... Я думал при каждом обращение к методу суперкласса , Java подгружает класс супер класса и в нем использует его . а на самом деле Все это (Родительчкий класс) копируеться в Дочерний класс ! Даже private Методы и Поля родительского класса есть в Дочернем ,но мы просто не можем получить к ним доступ... Ещё я не знал что Конструкторы тоже наследуються....
0
|
||
|
|
||||||
| 05.06.2013, 14:08 | ||||||
0
|
||||||
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
||
| 05.06.2013, 14:27 [ТС] | ||
|
приватный метод? И почему так?) Добавлено через 2 минуты Ведь модификатор private говорит что метод или переменная может быть использована только внутри класса? Или я не прав??
0
|
||
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
||
| 05.06.2013, 14:39 [ТС] | ||
|
Блин стоп это же иннер классы? Значит в этом подвох?
Добавлено через 4 минуты new InheritAll().new S1().priv(); Этот код Мне выдаст Ошибку типа : The method priv() from the type InheritAll.S1 is not visible Тоесть Метод priv() из типа InheritAll.S1 не виден... а вот через super он виден... Это касяк разрабов Java?
0
|
||
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|
| 05.06.2013, 15:08 [ТС] | |
|
Так стоп The method priv() from the type InheritAll.S1 is not visible выводиться если я создам переменную типа InheritAll.S1 в другом классе , и как бы другом объекте ...
Я вот не понял одного : Я знаю что внутриний класс имеет доступ ко всем Членам внешнего класса, а вто Внешний класс имеет ли доступ ко всем Членам внутреннего класса? Добавлено через 6 минут Все разобрался InheritAll(){ S1 s = new S1(); s.priv(); } Приват методы вызываються из-за того что это внтуренние классы вызывающегося метода и он имеет доступ к ним так как они в 1 классе ... Я правильно понял? Добавлено через 2 минуты Можно даже так : void demo() { new S1().priv(); super.def(); super.priv(); super.pub(); }
0
|
|
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 06.06.2013, 14:26 | |
|
0
|
|
| 06.06.2013, 14:26 | |
|
Помогаю со студенческими работами здесь
16
Не могу понять что это за ошибка Не могу понять, что это значит: while(i<10/2)
Я не могу понять что делает данная программа. Точнее что делают функции используемые в это коде Подскажите что делать. Знаю что надо перегрузить оператор но никак не могу понять как это сделать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|