Композиция, я не совсем понимаю?

Ссылаясь на ссылку ниже:

http://www.javaworld.com/javaworld/jw-11-1998/jw-11-techniques.html?page=2

Композиционный подход к повторному использованию кода обеспечивает более сильную инкапсуляцию, чем наследование, потому что изменение внутреннего класса не должно нарушать какой-либо код, который опирается только на внешний интерфейс. Например,изменение возвращаемого типа метода Fruit's peel () из предыдущего примера не приводит к изменению интерфейса Apple и, следовательно, не нужно нарушать код Example2.

Конечно, если вы измените тип возвратаpeel() (см. код ниже) это означаетgetPeelCount() не сможет вернутьint еще? Разве вам не пришлось бы менять интерфейс или получить ошибку компилятора в противном случае?

class Fruit {

    // Return int number of pieces of peel that
    // resulted from the peeling activity.
    public int peel() {

        System.out.println("Peeling is appealing.");
        return 1;
    }
}

class Apple {

    private Fruit fruit = new Fruit();

    public int peel() {
        return fruit.peel();
    }
}

class Example2 {

    public static void main(String[] args) {

        Apple apple = new Apple();
        int pieces = apple.peel();
    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос