Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / опять насчет переопределения методов / 6 сообщений из 6, страница 1 из 1
25.04.2006, 14:21
    #33688915
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять насчет переопределения методов
Есть 2 класса
abstract class A
{
abstract void methodA();
}
class B extends A
{
void methodA()
{
.........
}
}
При компиляции пишет
B is not abstract and does not
override abstract method methodA() in A
^
Зато если объявить их public, то работает :(
Но зачем abstract метод объявлять паблик?
...
Рейтинг: 0 / 0
25.04.2006, 14:32
    #33688950
OU
OU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять насчет переопределения методов
потому что абстрактные методы implicitly public, а overriden методы могут иметь access specifiers только такого же уровня или выше.
...
Рейтинг: 0 / 0
25.04.2006, 14:35
    #33688965
OU
OU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять насчет переопределения методов
сорри, implicitly protected (package private)
...
Рейтинг: 0 / 0
25.04.2006, 16:10
    #33689264
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять насчет переопределения методов
спасибо
...
Рейтинг: 0 / 0
25.04.2006, 17:28
    #33689631
опять насчет переопределения методов
osonЕсть 2 класса
abstract class A
{
abstract void methodA();
}
class B extends A
{
void methodA()
{
.........
}
}
При компиляции пишет
B is not abstract and does not
override abstract method methodA() in A
^
Зато если объявить их public, то работает :(
Но зачем abstract метод объявлять паблик?
У вас класс A в одном пакете, а B - в другом. Но метод methodA вне своего пакета не виден. Поэтому в классе B не переопределяется, а просто создается одноименный метод. Когда ставишь public, метод становится видимым вне пакета со всеми вытекающими...

OUсорри, implicitly protected (package private)
1. Абстрактные методы классов не имеют никаких implicity. Это вы спутали с интерфейсами.
2. protected и package private не одно и то же.
...
Рейтинг: 0 / 0
27.04.2006, 15:21
    #33694793
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять насчет переопределения методов
oson
Зато если объявить их public, то работает :(
Но зачем abstract метод объявлять паблик?

Потому что если не ставить модификатор доступа public (и вообще не ставить никакой другой модификатор доступа) то автоматически присваивается модификатор "по умолчанию" что означает доступность метода только внутри данного пакета. Поэтому если попытаться переопределить такой метод в другом пакете компилятор выдаст ошибку.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / опять насчет переопределения методов / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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