如何隐藏可继承类中的公共方法

时间:2011-09-02 15:55:31

标签: android

我想隐藏用户可继承类中的一些方法。 例如:

public class Test extends TextView {

    public Test(Context context) {
          super.onCreate(context);
    }

    /* hide this method */
    @Override
    protected void setText(CharSequence text) {
          super.setText(text);
    }
}

然后我不想在Test类中看到这个方法。 我该怎么做?对不起我的英文

1 个答案:

答案 0 :(得分:0)

这听起来像一个设计问题,因为隐藏它似乎有点脏,因为分配给子类的基类应该仍然能够调用基类方法。

但是,你可以做两件事之一。

  1. 将方法标记为已弃用。注意:弃用通常用于告诉人们不使用方法b / c它很快就会被移除但仍然可以使用,而在这里它根本不起作用(大概)......

    AND在方法中抛出UnsupportedOperationException,以便你/其他人在调用它时尽早捕获它。

    /*
     * @deprecated Do not call this method.
     */
    @Deprecated
    @Override
    protected void setText(CharSequence text) {
          throw new UnsupportedOperationException("not supported");
    }
    
  2. 而不是子类化考虑组合。我的意思是创建一个包装所需类的类,并只显示你想要的类。如果您需要原始类和包装类之间的通用接口,请创建一个它们实现并使用接口但使用新类实例化的接口。