Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition > Программирование

Программирование Вопросы связанные с программированием в JAVA

Ответ
 
Опции темы
Старый 04.12.2011, 15:54   #1
Ksanatos
ПроЭктировщик
 
Аватар для Ksanatos
 
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений
(для 17 пользователей)
Наследование в Java. Использование методов из наследника через интерфейс.

Есть интерфейс и экземпляр этого интерфейса в переменной, ей, естественно, присвоен, описанный с помощью интерфейса, класс. Можно ли как-то обратится с помощью этой переменной к методам из класса не описанным в интерфейсе?
Вот пример кода:
interface Sample {
  public 
void someMethod();
}

class 
implements Sample {
  public 
String methodInClass() {
    return 
"yaeh!";
  }
}

class 
{
  
Sample variable = new A();
  
String.out.println("Is it true? " variable.methodInClass());//можно-ли делать так, и если нет, то чем это можно заменить?

__________________



(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 17:20   #2
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Наследование в Java. Использование методов из наследника через интерфейс.

не знаю как там в яве с рефлекцией, но это нарушения принципов OOП.
Варианта только 2 - привести variable к А или добавить обьявление метода в интерфейс.
Хотя ещё можно сделать ещё один интерфейс с медотом "methodInClass", и его тоже добавит в наследование

Но ачем вообще такое может понадобиться?
(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 17:35   #3
Ksanatos
ПроЭктировщик
 
Аватар для Ksanatos
 
Регистрация: 31.01.2010
Адрес: Россия, респ. Башкортостан, г. Бирск
Сообщений: 137
Написано 12 полезных сообщений
(для 17 пользователей)
Ответ: Наследование в Java. Использование методов из наследника через интерфейс.

нужен массив объектов разных классов, соответственно методы во всех классах разные.
думаю сделать так: для каждого класса сделать по переменной, и присваивать ей переменные массива, в зависимости от типа.
__________________



(Offline)
 
Ответить с цитированием
Старый 04.12.2011, 22:14   #4
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Наследование в Java. Использование методов из наследника через интерфейс.

если куча разных обьектов почемуто содержаться в одном списке то они таки должны хоть както быть логичски связаны. иначе, товарищь, перестаньте использовать ООП не по назначению.

ну или есть ещё другой вариант(который я считаю рассово неверным)

Interface ISample {
  public int getType();
}

class A1 implements ISample {
public int getType()
{
return 1;
}

  public String methodInClass() {
    return "yaeh!";
  }
}

class A2 implements ISample {

public int getType()
{
return 2;
}

  public String methodThird() {
    return "Test!";
  }
}


void Test(ISample test) {


  if(test.getType()==1)
{
A1 a1=(A1)test;
 String.out.println("Is it true? " + a1.methodInClass());//можно-ли делать так, и если нет, то чем это можно заменить?
}
 else  if(test.getType()==2)
{
A2 a2=(A2)test;
 String.out.println("Is it true? " + a2.methodThird());//можно-ли делать так, и если нет, то чем это можно заменить?
}
}
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 17:14.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com