помогите чайнику )

  • Автор темы yamahar1sp
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Y

yamahar1sp

Подскажите:
как можно определить что-то типо процедурного типа или классового метода(как в Delphi), который можно будет определять позже, но юзать сейчас, создавая при этом объекты данного класса?
не используя интерфейсы (интерфейсные ссылки). :D
 
1

1r0n

я чтото не понял ;) Как ты собираешся использовать метод, если он не определён? Можно оставить пустым. Ну а потом можно просто перегрузить и всё. Примерно так.

Код:
public class MyClass {

public void method() {}

} 

...а потом...

MyClass obj = new MyClass() {
public void method()
{
//что тебе надо
}
};
 
S

Siarhei Berdachuk

Создаешь абстрактный класс с типовой реализацией методов или пустышками, а потом создаешь его наследников и переопределяешь методы если потребуется.
Пример
Код:
public abstract class A {

public void myMethod() {
// bla bla bla;
}
}

public class B extends A {

public void myMethod() {
// bla bla bla;
}
}
 
L

LuMee

Для: Siarhei Berdachuk
Вместо пустышек лучше использовать абстрактные методы:
Код:
public abstract class A {

public abstract void myMethod();
}

public class B extends A {

public void myMethod() {
// bla bla bla;
}
}
Для: yamahar1sp
А чем интерфейсы не угодили? Они все же погибче будут.
 
S

Siarhei Berdachuk

Для: yamahar1sp
А чем интерфейсы не угодили? Они все же погибче будут.
Читаем внимательно первый пост. Там явно указано, что без интерфейсов.
Мало ли зачем это человеку надо, может к собеседованию готовится ;)

..я чтото не понял ;) Как ты собираешся использовать метод, если он не определён?
Кстати вполне возможно использовать и не определенные заранее методы.
Мало ли какая архитектура программы. Мне доводилось писать код, который брал наименования
классов, методов и параметров из БД например для выполнения некоторого действия.
Потом динамически подгружаем класс, проверяем его методы проверяем наличие таких
методов и выполняем.
Этот подход позволяет строить гибко настраиваемые и масштабируемые системы.
Но и гемора добавляется на порядок. Обязательно нужно все четко документировать в проекте
так как через год сам не понимаешь что за что отвечает и как оно умудряется работать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!