继承中父类的有参构造方法怎么调用的问题

我们都知道在继承关系中,只要new 一个子类的对象,那么父类和子类的构造方法都会被调用,但这都是父类无参构造才行,如果父类是有参构造呢?

我试验了一下:父类构造方法有参数必须要子类的构造方法通过super关键字赋值,不然要报错,而子类是不是有参或者无参构造都无所谓:

代码如下:

 1 public class Fu {
 2     public Fu(String name){
 3         System.out.println(name);
 4     }
 5 }
 6 
 7 public class Zi extends Fu {
 8     public Zi() {
 9        super("anc");//如果要赋值必须通过super关键字赋值
10     }
11 }
12 
13 public class ExtendsTest {
14     public static void main(String[] args) {
15       Zi zi = new Zi();
16     }
17 }

在简述一下父类和子类成员变量和成员方法重名的问题:

成员变量重名:

1  public void show1(){
2         System.out.println(this.age);//this关键字调用本类中的成员变量
3         System.out.println(super.age);//super关键字调用父类中的成员变量
4     }
//同样也可以用this和super关键字分别调用本类和父类的方法

成员方法重名:

1  public void show(){
2         System.out.println("父类的方法");
3     }
4 
5 public  void show(){
6         super.show();//子类重写父类的方法,通过super关键字调用
7        System.out.println("子类的方法");
8     }

 

posted @ 2021-09-21 16:12  金涛骇浪  阅读(389)  评论(0编辑  收藏  举报