Quiero limitar el acceso de los métodos protegidos solo a ciertas clases heredadas.Limitar el acceso al método en la sección protegida a pocas clases
Por ejemplo, hay una clase base como
TBase = Class
Protected
Method1;
Method2;
Method3;
Method4;
End;
He dos clases derivadas de Tbase
TDerived1 = Class(TBase)
//Here i must access only Method1,Method2 and Method3
End;
TDerived2 = Class(TBase)
//Here i must access only Method3 and Method4
End;
Entonces es posible acceso sólo Método1, Método2 y metodo3 cuando i utilizar objetos de TDerived1 y Método3 y Método4 cuando iu Se objetos de TDerived2
¿Sugiere que simplemente "redeclar" un método en la declaración de clase promueve su visibilidad? Esto no funciona para mí en D2007 - Tengo que ** implementar ** un método de reenvío ** y ** el método tiene que estar protegido en la clase base, sin embargo. –
Ese * tipo de * trabajo ... Si las clases se declaran en la misma unidad, puede usar ese método. Simplemente haga que TBase1.Method1 llame a "Method1 heredado". Pero no tiene sentido hacerlo. Todavía mal diseño en mi humilde opinión. –
@Ulrich: edité la publicación con un ejemplo más elaborado. @Ken: Totalmente de acuerdo, de ahí las notas que agregué en el edito. –