Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Общий метод для наследников / 10 сообщений из 10, страница 1 из 1
01.02.2018, 13:35
    #39594879
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Есть два бина
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Test{
 private string id;
}

public class Child1 extend Test{
 private string childName1;
}

public class Child2 extend Test{
 private string childName2;
}



Вызываются
Код: java
1.
2.
3.
4.
5.
6.
7.
public void method1(Child1 child1){
 save(child1);
}

public void method2(Child2 child2){
 save(child2);
}



Как правильно реализовать метод, чтоб он мог обрабатывать Child1 и Child2
Через рефлексию?
...
Рейтинг: 0 / 0
01.02.2018, 13:44
    #39594887
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Я нашел через instanceOf решение
Но нехотелось бы плодить полотно if else
...
Рейтинг: 0 / 0
01.02.2018, 13:46
    #39594888
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
-=Koba=-,

Код: java
1.
2.
3.
public void method1(Test child){
 save(child);
}
...
Рейтинг: 0 / 0
01.02.2018, 13:48
    #39594890
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Usman-=Koba=-,

Код: java
1.
2.
3.
public void method1(Test child){
 save(child);
}



А потому как получить getChildName1 и getChildName2
...
Рейтинг: 0 / 0
01.02.2018, 13:53
    #39594895
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
-=Koba=-Usman-=Koba=-,

Код: java
1.
2.
3.
public void method1(Test child){
 save(child);
}




А потому как получить getChildName1 и getChildName2добавить в parent класс поле name, которое и будет использовать в обоих (в данном случае) наследниках
Код: java
1.
2.
3.
4.
public class Test{
 private String id;
 private String name;
}

и в этом случае достаточно будет вызвать метод:
Usman
Код: java
1.
2.
3.
4.
public void method1(Test child){
 save(child);
 child.getName();
}
...
Рейтинг: 0 / 0
01.02.2018, 13:59
    #39594900
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Usman,

Понимаете это частный случай я привел
Давайте я отойду от String

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class Test{
 private string id;
}

public class Child1 extend Test{
 private int length;
}

public class Child2 extend Test{
 private boolean exists;
...
Рейтинг: 0 / 0
01.02.2018, 14:22
    #39594920
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
-=Koba=-,

Перегрузите метод save для каждого child-а.
...
Рейтинг: 0 / 0
01.02.2018, 14:29
    #39594926
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Usman-=Koba=-,

Перегрузите метод save для каждого child-а.

Вот от этого я и хотел избавиться.
Ладно, спасибо за ответ
...
Рейтинг: 0 / 0
01.02.2018, 14:30
    #39594928
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
Полиморфизм.
Общий метод пишется в базовый класс. Где метод save?
...
Рейтинг: 0 / 0
01.02.2018, 15:50
    #39595015
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Общий метод для наследников
-=Koba=-Вот от этого я и хотел избавиться.на мой взгляд это лучше, чем каскад if -ов из instanceof
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Общий метод для наследников / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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