Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java abstract method / 3 сообщений из 3, страница 1 из 1
01.11.2012, 07:14:34
    #38021011
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java abstract method
Добрый день! Ставил сегодня эксперименты и в голову пришел вот такой код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
abstract class A {
    public abstract void f();
}

class ConcreteA extends A {
    @Override
    public void f() {
        System.out.println(getClass() + ".f()");
    }
}

abstract class B extends ConcreteA {
    public abstract void f();
}

class ConcreteB extends B {
    @Override
    public void f() {
        System.out.println(getClass() + ".f()");
    }
}

public class Main {
    public static void main(String[] args) {
        A a1 = new ConcreteA();
        a1.f();

        A a2 = new ConcreteB();
        a2.f();
    }
}



Вот только не могу понять, для чего ввели такую возможность?

В каких реальных задачах может такое понадобится?
...
Рейтинг: 0 / 0
01.11.2012, 10:29:25
    #38021218
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java abstract method
scymaksВот только не могу понять, для чего ввели такую возможность?
абстрактные методы - это:
- соглашение об интерфейсах ИЛИ заготовки на будущее когда некогда писать реализацию (прототипирование)
- название метода и сигнатура для автоматического вызова метода у самого старшего наследника при полиморфизме (машина сама разбирается какой объект вызывать для отрисовки ГУИ)
- соглашение об интерфейсах междумодульных в ИС (программист А передал абстрактное описание программисту Б, который использует его класс)
- .....
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
02.11.2012, 06:23:53
    #38022682
scymaks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java abstract method
Petro123,

Это всё понятно.

Вы может код не внимательно посмотрели..

Код: java
1.
2.
3.
4.
abstract class A {
    // абстрактный метод
    public abstract void f();
}



Код: java
1.
2.
3.
4.
5.
6.
7.
class ConcreteA extends A {
    // реализуем абстрактный метод
    @Override
    public void f() {
        System.out.println(getClass() + ".f()");
    }
}



Код: java
1.
2.
3.
4.
abstract class B extends ConcreteA {
    // Снова объявляем абстрактным (Зачем так можно???)
    public abstract void f();
}



Код: java
1.
2.
3.
4.
5.
6.
class ConcreteB extends B {
    @Override
    public void f() {
        System.out.println(getClass() + ".f()");
    }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java abstract method / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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