|
|
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Всем привет! Как можно вызвать статический метод базового класса для класса наследника? Например код: Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. Не получается таким образом для класса наследника Vector вызвать метод родителя .read(). Как это можно сделать? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 12:22 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Вы бы текст ошибок читали. Со словарём, например. У вас метод возвращает тип Matrix. Matrix это не Vector. Поэтому присвоение Код: java 1. не компилируется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 12:30 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо. То есть в моем примере методы базового класса использовать не получится? Нужно свои методы писать для класса наследника с такими же именами, но другими возвращаемыми значениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 12:39 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
mr_virtusТо есть в моем примере методы базового класса использовать не получится? Нужно свои методы писать для класса наследника с такими же именами, но другими возвращаемыми значениями? Непонятно чего именно вы планируете достичь. Почему методы статические? У них полиморфизм статический, а не динамический как у виртуальных методов. Почему у вас один метод должен возвращать разные типы? Реализовать объявление через генерики не проблема. Проблема в том что не понятно зачем оно нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 12:49 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо! авторУ них полиморфизм статический, а не динамический как у виртуальных методов Кажется стало понятней. авторПочему методы статические? потому что у меня по заданию метод read() должен принимать параметры: n ,m, filename. Поэтому я и подумал, что матрица должна создаваться изсходя из параметров n и m. Ну а если она будет создаваться в методе, то, возможно, её метод удобней вызывать статически, чтоб перед этим не надо было создавать экземпляр класса. авторПочему у вас один метод должен возвращать разные типы? Получается, что если я буду использовать статические методы, то мне надо для моего наследника написать свой метод со своим возвращаемым значением, чтоб для родителя работал свой, а для наследника свой. авторРеализовать объявление через генерики не проблема. Сорри, не очень понял. авторПроблема в том что не понятно зачем оно нужно. попробывал объяснить выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 13:09 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
У вас проблема в том что один метод выполняет разные задачи. read, который по-задумке читает любую матрицу, в вас ещё и создаёт её экземпляр. Разделите создание экземпляра и непосредственно чтение по разным методам. Выбранный дизайн предметной области тоже сомнительный. Потому что вырожденая матрица new Matrix(n, 1) является вектором с точки зрения предметной области. Но не является им с точки зрения вашего дизайна классов. Выходит ваша модель предметной области не соответствует самой предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 13:25 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторРазделите создание экземпляра и непосредственно чтение по разным методам. Немного смущает то, что при таком варианте нужно писать: Код: java 1. 2. То есть получается 2 раза передаем n и m. Или так писать - нормальная правильная практика? авторПотому что вырожденая матрица new Matrix(n, 1) является вектором с точки зрения предметной области. Но не является им с точки зрения вашего дизайна классов более точно у меня в задаче звучит так: авторВектор – это матрица из одной колонки. То есть мой класс vector создает матрицу с одной колонкой и n строками. А чем является new Matrix(n, 1) с точки зрения моего дизайна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 13:51 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
mr_virtusНемного смущает то, что при таком варианте нужно писать: Код: java 1. 2. То есть получается 2 раза передаем n и m. Или так писать - нормальная правильная практика? А вас не смущает то что метод read может у поля arr взять размеры? mr_virtusболее точно у меня в задаче звучит так: авторВектор – это матрица из одной колонки. Это предметная область. mr_virtusТо есть мой класс vector создает матрицу с одной колонкой и n строками. Чем это лучше такого кода? Код: java 1. mr_virtusА чем является new Matrix(n, 1) с точки зрения моего дизайна? Я не знаю. Это же ваш дизайн. Вот код. Код: java 1. Он не перечит предметной области. Но не работает в вашей модели предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 13:57 |
|
||
|
вызов статического метода базового класса для наследника
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторА вас не смущает то что метод read может у поля arr взять размеры? согласен, просто такое в задании условие, что read принимает размеры, поэтому и сталтак делать. авторВот код. Vector v = new Matrix(n, 1); Он не перечит предметной области. Но не работает в вашей модели предметной области. Ну да. Только, если я правильно понимаю, то можно написать в таком случае и так: Код: java 1. И экземпляр вектора тоже создастся, только колонок у него будет 5. И как в таком случае сделать проверку на количество колонок, я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38585209&tid=2127509]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 503ms |

| 0 / 0 |
