super 关键字

super 关键字在面向对象编程中,特别是在 Java 和某些其他编程语言中,具有特殊的意义和用途。以下是关于 super 关键字的详细解释:

1. 定义

super 关键字用于引用当前对象的父类对象。在 Java 等编程语言中,当类之间存在继承关系时,子类可以继承父类的属性和方法。

但有时,子类需要直接访问或调用父类的特定属性或方法,这时就可以使用 super 关键字。

2. 主要用途

  1. 调用父类的构造方法
    • 在子类的构造方法中,可以使用 super() 来显式调用父类的构造方法。如果子类的构造方法中没有显式调用父类的构造方法,那么编译器会自动调用父类的无参构造方法(如果存在)。
    • super() 必须位于子类构造方法的第一行。

 例子:

class Animal {  
    public Animal() {  
        System.out.println("Animal constructor called");  
    }  
}  
class Dog extends Animal {  
    public Dog() {  
        super(); // 调用父类的构造方法  
        System.out.println("Dog constructor called");  
    }  
}

  2.访问父类的成员

  • 当子类重写了父类的方法或变量时,可以使用 super 来访问父类中的定义。
    ​
    class Parent {  
        int x = 10;  
    }  
    class Child extends Parent {  
        int x = 20;  
        void display() {  
            System.out.println(super.x); // 访问父类的 x 变量,输出 10  
            System.out.println(this.x);  // 访问子类的 x 变量,输出 20  
        }  
    }
    
    ​

    3.解决歧义

  • 在某些情况下,子类可能会重写父类的方法或变量,而同时又需要调用父类中的定义,这时可以使用 super 来消除歧义

3. 用法

  • super.父类属性名:调用父类中的属性。
  • super.父类方法名():调用父类中的方法。
  • super():调用父类的无参构造方法。
  • super(参数):调用父类的有参构造方法。

4. 注意事项

  • super() 调用父类构造方法时,必须位于子类构造方法的第一行。
  • 如果父类没有无参构造方法,而子类构造方法又没有显式调用父类的构造方法,那么编译器会报错。

5. 总结

super 关键字在面向对象编程中扮演着重要的角色,它允许子类在需要时直接访问或调用父类的属性和方法,从而增强了代码的灵活性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值