Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как проверить равенство типов объектов? / 8 сообщений из 8, страница 1 из 1
25.03.2015, 22:43
    #38917072
umka_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
Код: java
1.
2.
3.
4.
5.
6.
7.
public abstract class Animal {

    ...    
    protected void eat(Animal animal) {}
    ...

}



Как избежать каннибализма? :)
...
Рейтинг: 0 / 0
25.03.2015, 23:37
    #38917095
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
На уровне абстрактного класса ничего сделать нельзя. Т.к. нет кода.

Но в имплементации можно заложить возможность проверки что
Код: java
1.
!(wolfObject instanceof Wolf).


Волк не ест волка. И проверять абстрактный аргумент животное на принадлежность к волкам.
...
Рейтинг: 0 / 0
25.03.2015, 23:47
    #38917099
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
maytonНа уровне абстрактного класса ничего сделать нельзя. Т.к. нет кода.

Но в имплементации можно заложить возможность проверки что
Код: java
1.
!(wolfObject instanceof Wolf).


Волк не ест волка. И проверять абстрактный аргумент животное на принадлежность к волкам.

а this.getClass().equals(animal.getClass()) не прокатит разве?
...
Рейтинг: 0 / 0
26.03.2015, 07:49
    #38917212
umka_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
mayton,
понятно, что потомки не должны кушать друг друга.
вопрос в том, что типы обоих экземпляров неизвестны.
...
Рейтинг: 0 / 0
26.03.2015, 08:44
    #38917256
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
umka_max
Код: java
1.
2.
3.
4.
5.
public abstract class Animal {
    ...    
    protected void eat(Animal animal) {}
    ...
}



Как избежать каннибализма? :)

Стандартное решение есть 17432817 , но это скучно...

Вопрос в том, что есть канибализм?
Например, если у Dog есть потомки AmericanCockerSpaniel и AmericanWaterSpaniel, то будет ли поедание одного другим канибализмом? :D
...
Рейтинг: 0 / 0
26.03.2015, 09:35
    #38917316
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
забыл ника this.getClass().equals(animal.getClass()) не прокатит разве?
Ну, здесь всплывает вопрос с наследованием. В зависимости от того как наследуется свойство каннибализма в иерархии классов такая проверка либо прокатит, либо нет.
...
Рейтинг: 0 / 0
26.03.2015, 09:38
    #38917320
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
Биологи поднимут нас на смех.

Думаю что наследование признаков в биологии и наследование классов в Java - это разные вещи
и их не стоит смешивать. Думаю что автору нужен аналитик который даст общее определение
животным (Animal) и канибализму.

И к теме Java-ООП это не будет иметь никакого отношения. И реализовывать это надо будет
по другому.
...
Рейтинг: 0 / 0
26.03.2015, 09:40
    #38917323
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить равенство типов объектов?
maytonБиологи поднимут нас на смех.
Что нам до этих неудачников.

maytonДумаю что наследование признаков в биологии и наследование классов в Java - это разные вещи
и их не стоит смешивать. Думаю что автору нужен аналитик который даст общее определение
животным (Animal) и канибализму.

Всё зависит от решаемой задачи. Это классическая проблема наследования между квадратом и прямоугольников. В зависимости от решаемой задачи это наследование может быть либо полезным либо вредным. Однозначного ответа на эту проблему нет. Всё упирается в сценарии использования.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как проверить равенство типов объектов? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]