类A 
Protected 
  有一个方法 LoadDate  virtual
类B = Class(类A)  --继承类A
  有一个LoadDate override;  继承类A现在是。以后类B 的子类都不能用LoadDate
这时如果把 类B 中的 LoadDate 方法写在 Private 中
它又会提示 has lower visibility (private) than base class 等级过低。有什么方法能彻底改好啊

解决方案 »

  1.   

    首先是简单解释下Delphi中Private、protected、public的作用域:
    private:仅在本类中可见,类的实例不可访问;
    protected:在本类及子类中可见,类的实例不可访问;
    public:皆可见;
    published:皆可见,支持RTTI,主要用于书写组件时的属性;所以,protected 的方法在子类的子类中是不可见的,而Private的方法更是受限。 如果没有特别要求,可以使用publish关键字。
      

  2.   

    1.protected为保护类,可在父类及子类中继承使用,如果不是使用此方法无需在子类中定义
    2.private 私有类,只能在本实例中使用
      

  3.   

    父类的方法在Protected里面,你在子类里面竟然放在Private里面,其实从设计的角度上就不对。
      

  4.   

    没看明白你要解决什么问题:
    一,如果你不让类B再用LoadDate,那么你把类A中的LoadDate放在private里,类B中不声明LoadDate;
    二,如果你的类B还要用LoadDate,但不是用类A中的,而是用类B自己的LoadDate,那你在类B中声明个重载函数,用overload,不用override,注意参数不要与类A中的参数一样。    简单的问题我们不要把它复杂化嘛。
      

  5.   

    实际上你可以使用inherited 方法名来使用父类的方法
    但是尽量不要这样实现
    因为你这个类的子类是没法那样调用的