程序1:
public class StaticCls{
 public static void main(String[] args) {
  A b = new B();
  b.fb();
 }
}
class A {
 public A(){ }
 public void fa() {
  System.out.println("CLASS A :Function fa Runing......");
 } public void fb() {
  System.out.println("CLASS A :Function fb Runing......");
  fa();
  System.out.println("CLASS A :Function fb Stop......");
 }
}
class B extends A {
 public B(){ }
 public void fa() {
  System.out.println("CLASS B :Function fa Runing......");
 } public void fb() {
  System.out.println("CLASS B :Function fb Runing......");
  super.fb();
  System.out.println("CLASS B :Function fb Stop......");
 }
}  和
程序2:
class MyA { 
int a = 1;
public MyA() { 
print(); 
}  public void print() { 
System.out.println("aaa" + a); 

} class MyB extends MyA { 
int a = 2; 
public MyB() { 
print(); 
}  public void print() { 
System.out.println("bbb" + a); 

} class MyC extends MyB { 
int a = 3; 
public MyC() { 
print(); 
}  public void print() { 
System.out.println("ccc" + a); 


public class StaticCls {     public static void main(String[] args) { 
      
new MyC();  } 
}
分别在 new MyC(); 和  A b = new B();设置断点。为什么 在new MyC(); 处F5跟进后,跳到 Throwable.class
public Throwable(String message, Throwable cause) {
而在  A b = new B();设置断点,F5会跳到  public B(){ }处呢?是因为 程序1中构造方法都是默认的,而2中构造方法重载了吗?