Oop 无法在扩展类中使用访问器
我有一个程序可以创建一个植物数组列表,有三个类可以扩展植物:花、真菌和杂草 所有三个子类都有3个特性,它们的方法都在Plant类中。我可以使用myList.get(I).getPlantName从我的arraylist轻松访问这些。getPlantName是plant类内部的访问器方法 子类具有独特的特性,例如,Flower类具有hasshorn和hasSmell等特性。但我无法访问这些访问器。我想我可以写一些像myList.get(I).getHasSmell这样的东西。getHasSmell是我的flower类中定义的一个方法(flower是Plant的扩展类) 我的大部分程序都工作得很好,我能够创建扩展类的对象,我唯一不能做的就是在扩展类中使用访问器方法,如上面一段所述Oop 无法在扩展类中使用访问器,oop,accessor,Oop,Accessor,我有一个程序可以创建一个植物数组列表,有三个类可以扩展植物:花、真菌和杂草 所有三个子类都有3个特性,它们的方法都在Plant类中。我可以使用myList.get(I).getPlantName从我的arraylist轻松访问这些。getPlantName是plant类内部的访问器方法 子类具有独特的特性,例如,Flower类具有hasshorn和hasSmell等特性。但我无法访问这些访问器。我想我可以写一些像myList.get(I).getHasSmell这样的东西。getHasSmell
为什么我不能在扩展类中使用这些访问器?任何帮助都将不胜感激。听上去,您试图访问子类上定义的方法,而父类中不存在这些方法 为了访问这些方法,父类(Plant)需要定义该方法(以具体的方式,例如Plant.hasSmell(){return false;}或作为抽象方法)并在子类中被重写,或者为您提供某种方法来确定将Plant对象强制转换到哪个子类以调用该方法 例如,植物中植物类型(杂草、花、真菌)的枚举,以及执行强制转换的开关
就我个人而言,我建议首选父类中的抽象方法。你在说什么编程语言?