Loading...
djc_bg2015 avatar djc_bg2015 923 Точки

[Homework] Java OOP - Въпрос относно Problem 1. Geometry

Здравейте,

започнах да пиша домашното към темата, и имам един въпрос относно задача 1:

Ето как съм конструирал проекта до тук:

- абстрактен клас Vertex с наследници Vertex2d/Vertex3d

- абстрактен клас Shape с абстрактни наследници PlaneShape/SpaceShape и всички конкретни форми като наследници

 

Как точно ще стане това абстрактния клас Shape да има лист от Vertex а неговите абстрактни наследници PlaneShape и SpaceShape да имат листове от сътвтно Vertex2d и Vertex3d ? Проблема е че когато добавя полето лист от вектори в Shape заедно с конструктор и после опитам в PlaneShape да преизползвам родителския конструктор , с лист от Vertex2d и ми казва че е невъзможно...

 

Май го написах доста объркващо, но ако някой ме разбере нека пише :)

Тагове:
2
Java Advanced 29/10/2015 22:27:31
Filkolev avatar Filkolev 4482 Точки
Best Answer

Мисля, че проблемът е, че опитваш да запазиш ArrayList<Vertex2d> в поле ArrayList<Vertex>. Поне доколкото рабрах от обяснението ти.

Решението е да си ползваш списъка с абстрактни точки, в конструктора на PlaneShape да приемаш като параметър списък с двуизмерни точки и да ги напълниш ръчно в списъка, който е в родителския клас (вместо да присвояваш целия списък). Направи си обаче някакъв метод/пропърти в Shape, с който наследниците да могат да достъпват и да пълнят списъка на родителя.

1
djc_bg2015 avatar djc_bg2015 923 Точки

Абсолютно си ме разбрал правилно! :)

Благодаря за подсказката - продължавам по задачата.

Поздрави!

0
Filkolev avatar Filkolev 4482 Точки

Надявам се, че си ме разбрал, че не ми е много подробно обяснението. В списък от Vertex може да вкарваш Vertex2D, но в променлива List<Vertex> не може да сложиш List<Vertex2D>, защото второто не е наследник на първото, и двете са списъци. 

0
djc_bg2015 avatar djc_bg2015 923 Точки

Ами разбрах как да реша проблема :)

А сега след втория ти пост, вече разбрах и какъв е проблема. То близко да акъла, но кой д се сети..

А и интелито не помага много .. само ми пишеше - едното в другото не влиза и до там.

Благодаря ти отново!

0
29/10/2015 23:13:18
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.