首先我drawImgListArea
是对父类的重写,在这块我想调用父类的drawImgListContent
方法,但是我看了看这个时候我使用this和super都能成功调用,因为子类继承了父类所以this指向子类也能找到drawImgListContent
,那这个super有什么用呢
首先我drawImgListArea
是对父类的重写,在这块我想调用父类的drawImgListContent
方法,但是我看了看这个时候我使用this和super都能成功调用,因为子类继承了父类所以this指向子类也能找到drawImgListContent
,那这个super有什么用呢
又看了一遍问题。是这样的,如果子类没有重载父类方法的情况下,
super.
和this.
没区别。但是如果子类有重载,比如下面的示例,那就不一样了。你猜会输出什么呢?
会输出:
特别强调一点:一般情况下,仅在重载函数中通过
super.
调用父被被重载的同名函数。应该尽量避免调用父类的非同名函数,如上例process
中调用super.test()
就应该尽量避免。这里这样调用是非常特殊的情况 —— 需要比较两个输出。真实场景的设计,子类重载的函数和父类同名函数应该有垂直关联,而水平关联应该避免越到父级。