|
|
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
Есть 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 метод объявлять паблик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 14:21 |
|
||
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
потому что абстрактные методы implicitly public, а overriden методы могут иметь access specifiers только такого же уровня или выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 14:32 |
|
||
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
сорри, implicitly protected (package private) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 14:35 |
|
||
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 16:10 |
|
||
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
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 не одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:28 |
|
||
|
опять насчет переопределения методов
|
|||
|---|---|---|---|
|
#18+
oson Зато если объявить их public, то работает :( Но зачем abstract метод объявлять паблик? Потому что если не ставить модификатор доступа public (и вообще не ставить никакой другой модификатор доступа) то автоматически присваивается модификатор "по умолчанию" что означает доступность метода только внутри данного пакета. Поэтому если попытаться переопределить такой метод в другом пакете компилятор выдаст ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 15:21 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33688965&tid=2149443]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 415ms |

| 0 / 0 |
