|
|
|
final переменная
|
|||
|---|---|---|---|
|
#18+
Объясните плиз ситуацию - типа тест public class A { protected final static String A= "A"; public String getA() { return A; } //это не компилиться: // public void setA(String a) { // A = a; // } } class B extends A { static String A = "B"; public String getA() { return A; } //а это компилиться: public void setA(String a) { A = a; } } class Dispatch { public static void main(String args[]) { A a = new B(); System.out.println(" a.getA() = " + a.getA()); } } и результат a.getA() = B Я чтото не понял - объявлением static String A = "B"; в классе B мы не переопределяем protected final static String A= "A"; класса A? И кроме того легко меняем final переменную класса A в методе B.setA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 12:27 |
|
||
|
final переменная
|
|||
|---|---|---|---|
|
#18+
ну вы же методо getA() переопределили... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 12:37 |
|
||
|
final переменная
|
|||
|---|---|---|---|
|
#18+
Но ведь переменная A final - и она переопределена в классе B - или если объявить в наследуемом классе такую же переменную, то это не переопределение, и при инициализация A a = new B() ; в объекте а - который фактически объект класса B - мы видим все методы переопределенные, то есть класса B, а переменные по-прежнему класса A? То есть вообще можно protected final static String A= "A"; переопределить так static String A = "B"; в дочернем классе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 14:48 |
|
||
|
final переменная
|
|||
|---|---|---|---|
|
#18+
переменную "переопределить" нельзя, этой возможностью обладают только не private, не static и не final методы класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 14:56 |
|
||
|
final переменная
|
|||
|---|---|---|---|
|
#18+
osonНо ведь переменная A final - и она переопределена в классе B - или если объявить в наследуемом классе такую же переменную, то это не переопределение, и при инициализация A a = new B() ; в объекте а - который фактически объект класса B - мы видим все методы переопределенные, то есть класса B, а переменные по-прежнему класса A? То есть вообще можно protected final static String A= "A"; переопределить так static String A = "B"; в дочернем классе? Код: plaintext 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. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 17:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33688894&tid=2149483]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
176ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 455ms |

| 0 / 0 |
