Согласно JLS #12.5, объект инициализируется в следующем порядке: 1. Инициализируется суперкласс. 2. Инициализируются поля и выполняются инициализационные блоки, в порядке следования. 3. Выполняется оставшееся тело дочернего конструктора.
При этом, инициализация суперкласса происходит аналогичным образом.
Эти два модификатора являются взаимоисключающими: – abstract используется, чтобы показать, что класс имеет неполную реализацию, или его следует рассматривать таковым; – final применяется к полностью реализованным классам, для которых не нужны (нежелательны) подклассы, чтобы обеспечить надёжность и/или производительность.
clone() - метод класса Object. Во-первых, все наименования методов класса Object являются зарезервированными словами, и определять свой собственный метод, название которого будет одим из этих слов - нельзя. Во-вторых, сигнатура метода не соотвествует clone() из Object.