function _createB() public {
address newB = new B();
newB(newB); //Event logs the address of contract B
}
Cuando copio y pego la dirección que se registra desde el evento newB en el "contrato de carga en la dirección" en Remix, obtengo otro contrato de tipo A.
¿Cómo podría crear contratos separados de tipo B?
Al intentar obtener un contrato de un tipo particular por "en la dirección", ese contrato debe seleccionarse en el menú desplegable.
Lo que sucede en tu caso es que obtienes el contrato de tipo "A" pero seguirá comportándose como contrato de tipo "B".
Simplemente proporciona una interfaz para el contrato que se selecciona y que se espera que se implemente en la dirección dada.
Ahora bien, si el contrato tiene la capacidad de responder a esos datos, es decir, llevar a cabo esa función, obtendrá la salida correcta de acuerdo con el contrato en esa dirección.
Nota: Esto debe usarse con precaución porque si no se usa correctamente, podría terminar interactuando con otro contrato.