Я работаю с абстрактным классом и двумя конкретными, которые реализуют абстрактный.Диаграмма выглядит следующим образом:
Мои занятия выглядят так:
abstract class NavItem() {
var attributes: String = ""
var text = ""
}
class NavMenu(val items: MutableList<NavItem>) : NavItem()
class NavLink(var shortText: String) : NavItem()
Проблема в том, что я пытаюсь работать с элементами, которые могут бытьNavMenu или NavLinks, NavMenus имеет коллекцию NavLinks.
Я пытаюсь работать с элементами, используя полиморфизм в качестве следующего кода:
navMenu.items.forEach{ item ->
buildNavItem(item)
}
методы buildNavItem выглядят так:
private fun buildNavItem(navMenu: NavMenu){
navMenu.items
navMenu.attributes
navMenu.items
}
private fun buildNavItem(navItem: NavItem){
navItem.text
navItem.attributes
}
private fun buildNavItem(navLink: NavLink){
navLink.text
navLink.attributes
}
Но код всегда попадает в buildNavItem (navItem: NavItem), даже когда для каждого я иногда вижу, что это элемент NavLink или NavMenu.
Есть какие-нибудь предложения?
Спасибо !!