powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / опять насчет переопределения методов
6 сообщений из 6, страница 1 из 1
опять насчет переопределения методов
    #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
опять насчет переопределения методов
    #33688950
OU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OU
Гость
потому что абстрактные методы implicitly public, а overriden методы могут иметь access specifiers только такого же уровня или выше.
...
Рейтинг: 0 / 0
опять насчет переопределения методов
    #33688965
OU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OU
Гость
сорри, implicitly protected (package private)
...
Рейтинг: 0 / 0
опять насчет переопределения методов
    #33689264
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
опять насчет переопределения методов
    #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
опять насчет переопределения методов
    #33694793
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oson
Зато если объявить их public, то работает :(
Но зачем abstract метод объявлять паблик?

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


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