在不使用受保护的情况下处理抽象类的正确方法是什么?

时间:2016-11-21 22:04:24

标签: java android abstract-class protected

例如:

public abstract class SomeBaseClass extends Fragment {
   protected static final String INT_TAG = "int_tag";
   protected int someInt;

   //...
}

public class ChildClass extends SomeBaseClass {
    public static ChildClass newInstance(int argInt) {
        Bundle args = new Bundle();
        bundle.putInt(INT_TAG, argInt);
        ChildClass fragment = new ChildClass();
        fragment.setArgs(args);
        return fragment;
    }

    public void onCreate() {
        someInt = getArguments().getInt(INT_TAG);
    }

    //...
}

但是我听说由于某些原因在抽象类中使用受保护的变量是个坏主意(我不知道为什么)。有什么替代方案?

1 个答案:

答案 0 :(得分:0)

访问受保护的属性是一个坏主意,因为它打破了封装,使您强烈耦合。您仍然可以使用getter和setter访问受保护的字段。

References