У меня есть два класса: Fish
и Plant
. Они не наследуются ни от каких классов.
Но оба они имеют один метод с именем isAlive()
, который имеет одинаковые детали реализации. Теперь у меня есть список рыб и еще один список собак, и мне нужно удалить мертвую рыбу и мертвую собаку. Я хочу, чтобы у моего метода было то же имя, но это невозможно без добавления дополнительного поля в сигнатуру метода. Возможно ли, что мне не нужно писать дополнительный фрагмент кода, который делает то же самое, что и последний фрагмент кода?
Ниже приведен код. Для класса Model
, Fish
и Plant
- это два элемента данных, и они представляют собой ArrayList объектов Fish
и Plant
.
Можно ли как-нибудь написать только один метод с именем count, и мне не нужно добавлять дополнительное поле в сигнатуру моего метода или изменять тип возвращаемого значения?
public class Fish{
public boolean isAlive(){
if(this.size > 0){
return true;
}
return false;
}
}
public class Plant{
public boolean isAlive(){
if(this.size > 0){
return true;
}
return false;
}
}
public class Model{
private int countDeadFish() {
int totalCount = 0;
for(Fish aFish : this.fish) {
if(aFish.isAlive() == false) {
totalCount += 1;
}
}
return totalCount;
}
private int countDeadPlants() {
int totalCount = 0;
for(Plant plant : this.plants) {
if(plant.isAlive() == false) {
totalCount += 1;
}
}
return totalCount;
}
}