Java--Inheritance constructor继承中的构造方法问题(二)

看了前辈的博客,觉得这两点说的精辟:子类构造方法必须要调用父类的某个构造方法;被子类调用的父类构造方法在父类中必须是存在的。

上篇的例子有一点不明白,子类继承了父类的成员变量,父类的构造函数里引用了该成员变量,而子类又调用了父类的这个构造函数,那么是否对该成员变量进行操作呢?

 1 class Usebefore {
 2     String str1;
 3     public Usebefore() {
 4         System.out.println(".....default super constructor...1...........");
 5     }
 6     public Usebefore(String get1){
 7         str1=get1;
 8         System.out.println(str1+".......................注意这条语句的执行结果");
 9         System.out.println(".....有参数constructor...1...........");
10     }
11 }
12 public class Use extends Usebefore{
13     public Use() {
14         System.out.println(".....default super constructor...2...........");
15     }
16     public Use(String get2){
17         super(" 调用父类有参constructor");
18         str1=get2;
19         System.out.println(str1);
20     }
21     public static void main(String args[]){
22         Use use=new Use();
23         use=new Use("get2");
24     }
25 }

结果

.....default super constructor...1...........
.....default super constructor...2...........
 调用父类有参constructor.......................注意这条语句的执行结果
.....有参数constructor...1...........
get2

  可以看到调用父类有参构造函数时,有一句话并没有执行,而且,连换行都没有执行。究竟是为什么呢?可惜俺不知道,知道会补上的。

原文地址:https://www.cnblogs.com/carazk/p/6135280.html