Наследование - совершенно необязательная для ООП конструкция. Это просто фича языка, без которой можно обойтись. Можно просто исключить наследование (не кейворд extends, а само понятие) из рассмотрения, ничего принципиально не изменится.