8.8 下午 第13天下课 java

 

 

 

 

  构造方法第一句总是:super(…)来调用父类对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。

      注:静态初始化块调用顺序,与构造方法调用顺序一样,不再重复。

 

 

**
 *super关键字: 类似与this关键字(当前当前对象);super关键字代表父类对象
 *1.可以利用super关键字代表父类对象访问父类的属性和方法。
 * super.属性--->访问父类的属性
 * super.方法名()--->调用父类的方法
 *2.可以使用super关键字调用父类的构造函数,必须出现在构造函数的第一行。
 *3.super不能与static混用。
 */
class Father{
    int value;
    public Father() {
        System.out.println("Father无参构造方法被调用!");
    }
    public Father(int value) {
        System.out.println("Father有参构造方法被调用!");
        this.value=value;
    }
    public void setValue() {
        value=100;
        System.out.println("Father.value="+value);
    }
}

class Child extends Father{
    int value;
    public Child() {
        super();//利用super调用父类的构造方法,必须在第一行
        System.out.println("Child的无参构造方法被调用了!");
    }
    public Child(int value) {
//        super(value);//调用父类的有参构造方法
        System.out.println("Child的有参构造方法被调用!");
        this.value=value;
    }
    public void setValue() {
        super.setValue();//使用super调用父类的方法
        value=200;
        System.out.println("Child.value="+value);
        System.out.println("Father.value="+super.value);//使用super访问父类的属性
    }
}

public class TestSuper {
    public static void main(String[] args) {
        Child child = new Child();
//        Child child = new Child(300);
        child.setValue();
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值