Java中super关键字的使用

Java中super关键字的使用

1、使用super操作呗隐藏的成员变量和方法

​ 子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归super所拥有。同样的,对于隐藏的方法调用也是有super所有。下面将举例说明用法:

public class SuperTest {
    static class Sum{
        int n;
        int f(){
           int sum = 0;
            for (int i = 1; i <= n; i++) {
                sum += i;
            }
            return sum;
        }
    }

    static class Average extends Sum{
        int n;

        float a(){
            super.n = n;
            float c;
            c = super.f();
            return c/n;
        }
    }

    public static void main(String[] args) {
        Average average = new Average();
        average.n = 100;
        float a = average.a();
        System.out.println("平均值为:" + a);
    }
}

输出结果为:平均值为:50.5

2、使用super调用父类的构造方法

​ 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,也就是说,如果子类的构造方法没有明显的指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。

​ **由于子类不继承父类的构造方法,因此,子类在其构造方法中需要使用super来调用父类的构造方法,而且super必须是子类构造方法中的头一条语句。**即如果在子类的构造方法中没有明显的写出super关键字来调用父类的构造方法时,则默认有super();

public class SuperTest01 {
    static class Student{
        int number;
        String name;
        //无参构造
        Student(){

        }
        //有参构造
        Student(int number,String name){
            this.number = number;
            this.name = name;
            System.out.println("我的名字是:" + name + "\n" + "我的学号是:" + number);
        }
    }

    static class UniverStudent extends Student{
        boolean married;
        UniverStudent(boolean married, int number, String name){
            super(number,name);
            this.married = married;
            System.out.println("婚否:" + married);
        }
    }

    public static void main(String[] args) {
        UniverStudent univerStudent = new UniverStudent(false, 101, "小梁");
    }
}

输出结果:

我的名字是:小梁
我的学号是:101
婚否:false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值