重写方法,调用父类方法时机

         一直以为,只要是重写方法,一开始就要调用父类方法,其实这是不准确的,如果是重写父类无参方法,那么最好一开始就调用,在实现父类的基础功能上处理自己的业务逻辑,如果是重写有参方法呢?是不是还是一开始就调用,这时候就看功能要求了,看下面这个例子:

@Override

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2
                MeasureSpec.AT_MOST); 
        super.onMeasure(widthMeasureSpec, expandSpec); 
    }


因为要改变父类控件默认的高度,所以,我们要重新设置自己想要的高度,再传给父类来实现,如果一开始就调用父类的方法,是没法改变父类实现的。如果没有这样的功能需求,也是可以一开始就调用父类方法。


   还有一种情况,有时实现父类返回boolean值的方法时,我们根据自己的需求,也可以直接写死,返回true or false,不用调用父类方法。


   所以,是否一定要调用父类方法,什么时机调用父类方法,是要看实际功能需求来的。

你可能感兴趣的:(=======java)