温暖的电波  
class Shape{
    void printk(){
        System.out.println("I am Shape");
    }
    Shape(){
        System.out.println("");
        System.out.println("--base--");
        printk();
    }
}

class Circle extends Shape {
    Circle(){
        System.out.println("");
        System.out.println("--extends--");
        printk();
    }
}
class Square extends Shape{
    void printk(){
        System.out.println("I am Square");
    }
    Square(){
        System.out.println("");
        System.out.println("--extends--");
        printk();
    }
}
public class E701{
    Circle ss = new Circle(); 
                               
    public static void main(String[] args){
        System.out.println("main");
        Circle cc = new Circle();
        Square squa = new Square();
    }
}

运行结果如下所示:

分析:

1. 当执行 java E701时,首先执行static main函数,此时打印“main”;

2. 接着通过new 构造一个Circle对象cc,Circle继承自父类Shape,所以先去构造父类Shape;

3. 构造父类Shape,执行构造函数,打印---base--- / I am Shape;

4. 接着构造继承类Circle,打印---extends--- / I am Shape;

5. 接着new 一个 Square对象,Square继承自Shape,先去构造父类;

6. Shape构造函数被调用,先打印---base---,由于Square已经重载了父类的prink函数,所以这里调用的printk是

    Square的printk,因而打印 I am Square

7. 父类构造完毕再构造Square,打印---extends--- / I am Square

posted on 2016-04-19 20:43  温暖的电波  阅读(268)  评论(0)    收藏  举报