重写:overwrite/override
子类根据需要对从基类继承来的方法进行重写。
重写方法必须与被重写方法有相同的方法名,参数列表和返回类型。
重写方法不能使用比被重写方法更严格的访问权限。
重载:overload
一个类里,相同的方法名,参数列表不同,根据传入的参数列表来觉得调用哪个方法。
参数列表必须不同:
参数个数不同或者参数类型不同。
只有返回值不同不能构成重载。因为“有返回值,但可以不用”,导致编译器无法识别到底用哪个。
int和short可以作为区分,即可以重载。
参数类型不同或者个数不同。
子类调用基类方法:super
子类调用自身:this
this(argument_list),调用自身构造方法。
继承:
子类的构造过程必须调用基类的构造方法。
子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。
子类还可以使用this(argument_list)调用本类另外的构造方法(重载)。
如果调用super,必须写在子类构造方法的第一行。
子类的构造方法中没有显示的调用基类构造方法时,系统默认调用基类无参构造方法。若基类没有无参构造方法,则编译出错。
构造函数执行顺序:
class A {A(){...}}
public B extends A {
B(){...}
public static void main(String[] args){
B b = new B();
}
}
从main开始,按顺序执行,遇到类的实例化,即B b = new B(),开始执行构造函数,但首先执行的是基类,即A类的构造函数A(),然后才是B()。
object类:
object类是所有类的根基类。
没有基类的类,默认继承object类。