Я следую учебнику spring .
В разделе «3.2. Добавление некоторых классов для бизнес-логики» создан интерфейс ProductManager
:
package springapp.service;
import java.io.Serializable;
import java.util.List;
import springapp.domain.Product;
public interface ProductManager extends Serializable{
public void increasePrice(int percentage);
public List<Product> getProducts();
}
Затем создается класс реализации SimpleProductManager
:
package springapp.service;
import java.util.List;
import springapp.domain.Product;
public class SimpleProductManager implements ProductManager {
public List<Product> getProducts() {
throw new UnsupportedOperationException();
}
public void increasePrice(int percentage) {
throw new UnsupportedOperationException();
}
public void setProducts(List<Product> products) {
throw new UnsupportedOperationException();
}
}
Класс реализации добавляет дополнительный метод setProducts()
.Если интерфейс ProductManager
также не имеет метода setProducts
, позволяющего классам, использующим setProducts
, создавать полиморфно SimpleProductManager
.В настоящее время это невозможно -
ProductManager p = new SimpleProductManager();
p.setProducts();