如何公开保护的方法

ysai 2011-01-17 04:35:26
  TA = class
private
Fpa: Integer;
protected
property pa : Integer read Fpa;
procedure fa(AA : Integer);
end;

TB = class(TA)
public
property pa; //公开保护的属性
procedure fa; //公开保护的方法,但这样做不行
end;


D7/D2010下有什么关键字能公开保护的方法吗?
声明一个方法再inherited父类的被保护方法,这种解决方案就不要说了
...全文
205 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2011-01-18
  • 打赏
  • 举报
回复
TB = class(TA)
public
property pa; //公开保护的属性
procedure fa(AA: integer); //这样可以
end;

实际上可以直接访问protected中的方法

同一个单元可以随意访问,在其他单元可以使用如下方法

THackTA = class(TA);

调用的时候使用
var
vA: TA;
begin
vA := TA.Create;
try
THackTA(vA).fa(100);
finally
vA.free;
end;
end;
dyf2001 2011-01-18
  • 打赏
  • 举报
回复
没有这种关键字,只能通过10楼的办法
ysai 2011-01-18
  • 打赏
  • 举报
回复
唉,咋都看不懂我的需求呢
ysai 2011-01-17
  • 打赏
  • 举报
回复
没用过datasnap的serverclass吗

一个serverclass对应客户端的一个clientclass,所有serverclass的public方法都会被映射到clientclass中,而这两个类一般不在同一进程甚至同一计算机

所以强制转换没有意义
yyfhz 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sz_haitao 的回复:]
在本单元重新“实现”一下,就是友类了
然后用它去强制转换
[/Quote]
+1
zkroy36 2011-01-17
  • 打赏
  • 举报
回复
写个公共方法,在方法里面调用下保护或私有方法就可以了
haitao 2011-01-17
  • 打赏
  • 举报
回复
在本单元重新“实现”一下,就是友类了
然后用它去强制转换
JPEXE 2011-01-17
  • 打赏
  • 举报
回复
inherited就是最靠谱的做法,想太多不定能得出好结果。
ysai 2011-01-17
  • 打赏
  • 举报
回复
是要跨单元访问,是datasnap的serverclass
不想破坏TA的封装,又不想写个除了inherited父类的方法之外什么功能也没有的方法
JPEXE 2011-01-17
  • 打赏
  • 举报
回复
蛋疼的需求
haitao 2011-01-17
  • 打赏
  • 举报
回复
同一个单元里的类,都是友类,可以访问保护的方法
风之谷 2011-01-17
  • 打赏
  • 举报
回复
提升?

你写的对着啊,只是这个方法看起来让人纠结

procedure fa(AA : Integer);

你是继承后重写方法还是重载方法?

xml加密(XML Encryption)是w3c加密xml的标准。这个加密过程包括加密xml文档的元素及其子元素,通过加密,xml的初始内容将被替换,但其xml格式仍然被完好的保留。 介绍 我们有3个加密xml的方法 1、仅仅使用对称加密的方法加密xml 这种加密方法只使用一个密钥,也就是说无论是加密xml还是解密xml都使用一个相同的密钥。因为这个密钥不会在被加密的xml中保存,所以我们需要在加密和解密的过程中加载这个密钥并保护它不被窃取。 2、使用对称加密和非对称加密相结合的方法来加密xml 这种方法需要一个用于加密数据的对称密钥和一个用于保护这个对称密钥的非对称密钥。被加密的对称密钥和被加密的数据一起保存在xml文档中。当用私有非对称密钥解密密钥的时候要用公开非对称密钥对密钥进行加密。 本文就将使用这种方法。想学到其他更多的方法请参看MSDN等到更多的信息。 (译者注:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。) 3、使用X.509加密xml,这种方法是用X.509作为非对称密钥,它由诸如VeriSign之类的第三方提供。 方法 不管xml加密是如何完成的,保存加密数据总是用两种方法之一。 1、加密后所有的元素都被命名为 2、加密后只有数据被替换,而元素名称仍然是可读的,不会发生变化。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧