Вы могли бы , но вам нужно знать тип, чтобы на самом деле вызвать метод (при условии отсутствия отражения и т. Д.), Если он не соответствует типу, который вы
Типы определяют то, что известно во время компиляции: если CoffeeDecorater
не содержит подпись fatContent
, ничто, получающее CoffeeDecoractor
, не знает, что метод существует.
Вы можете создать дополнительный интерфейс, но вам нужно будет либо знать, что он существует, чтобы вы могли проверить его (instanceof
), либо опросить класс, чтобы проверить наличие конкретной подписи (отражения).
Java либо знает, что метод существует во время компиляции, либо проверяет его во время выполнения.