Hola hhs. Antes que nada, al igual que a alvaro_trewhela, agradecer tu ayuda y tiempo.
Ya leí sobre los principios GRASP, por lo pronto de la Wikipedia, por que desconocía el termino (es lo que pasa cuando aprendes a programar sin universidad), voy a buscar el libro que mencionas para comprarlo en la primera oportunidad.
La idea final es/era tener algo como:
Código PHP:
$Auto1 = new Auto();
$Auto2 = new Auto();
....
Y que cada "Auto" tenga todos sus componentes, "Tanque, Motor, etc.."
Probablemente lo pudiese resolver con solo una clase, la clase Auto, y ahi toooodas las funciones y atributos.
Pensé en utilizar varias clases para tener "orden" pero veo que lo plantee mal desde un inicio y de ahi todos los problemas. Pero sus codigos y consejos ya me dejan mas en claro cual es la forma correcta de hacerlo.
Una ultima pregunta, veo que en los constructores de las classes utilizas algo como:
Código PHP:
__constructor(Tank $tank)
Nunca lo habia usado en PHP, es igual que en C? para forzar que la variable enviada sea una instancia de Tank o tiene otra funcion?