Android中高级面试题(二):重载和重写是什么意思,区别是什么?

这道题想考察什么?

Java基础

考察的知识点

面向对象多态的基础概念

考生应该如何回答

重写(Override)

重写就是重新写的意思,当父类中的方法对于子类来说不适用或者需要扩展增强时,子类可以对从父类中继承来的方法进行重写。

比如Activity是Android开发中四大组件之一。在Activity中存在各种声明周期方法:onCreate、onStart …等等。而我们应用中需要使用Activity来展示UI,那么我们会需要编写自己的类继承自Activity。

public class MainActivity extends Activity{
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

在上述代码中,onCreate就是被我们重写的Activity中定义方法。我们在onCreate增加了setContentView

的调用,完成了对超类Activity中对应方法的修改与扩展。

重载(Overload)

重载则是在同一个类中,允许存在多个同名方法,只要它们的参数列表不同即可。比如在Android开发中,我们会使用LayoutInflater的inflate方法加载布局,inflate方法存在多个定义,其中包括两个参数的,与三个参数的:

public View inflate(@LayoutRes int resource, @Nullable ViewGroup root) {
    
    
	return inflate(resource, root, root != null);
}
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) {
    
    
    //......
}

可以看到在两个参数的inflate方法中,会为我们调起三个参数的inflate方法,而定义第一个inflate方法的目的就是为了提供默认的attachToRoot参数值。因为Java中无法定义方法参数默认值,所以我们经常使用重载达成此目的。

猜你喜欢

转载自blog.csdn.net/Coo123_/article/details/130692584
今日推荐