Ваш ответ на первый вопрос, конечно, правильный. Доказательство .
Второй вопрос означает, что если бы у вас был интерфейс IExtendedCloneable
, который был бы получен из ICloneable
(имел бы ICloneable
в качестве родительского интерфейса), он не был бы основным ответом, потому что ICloneable является более общим (менее производным) - оно ближе к object
на дереве наследования.
Если бы не было этого ограничения, вы могли бы сказать, что Clone()
является членом System.Windows.Forms.Control.ControlCollection и вы были бы правы, но ответ не был бы действительно актуально.
Благодаря этому ограничению ICloneable
является ответом.