转载自这篇博客
小编现在学习了一下继承中的构造方法,觉得还是总结一下比较好。
【特点】
1、子类的构造的过程中必须调用其基类的构造方法。
2、子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。
3、如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类无参数的构造方法。
使用this(argument_list)调用本类的另外的构造方法
如果调用super,必须写在子类构造方法的第一行
4、如果子类构造方法中既没有显示调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。
【实例一】
class A{
protected void print (String s){
System.out.println(s);
}
A(){
print("A()");
}
public void f(){
print("A:f()");
}
}
class B extends A {
B(){
print("B()");
}
public void f(){
print("B:f()");
}
public static void main (String arg[]){
B b = new B();
b.f();
}
}
执行后的结果为:
执行步骤为:
1.执行main里面的第一个方法 B b = new B();利用了特点3的规则,打印出A()、B()
2.执行第二个方法 b.f();利用了重写,打印出B:f()
方法的重写:
1、在子类中可以根据需要对从基类中继承来的方法进行重写
2、重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
3、重写方法不能使用被重写方法更严格的访问权限
【实例二】