super关键字

super关键字

两种途径

  • 调用父类的方法
  • 调用父类的构造方法

语法格式

super.属性名//访问父类的属性

super.方法名(参数);//调用父类的方法。

super(参数);//调用父类的构造方法。
//初始化当前对象的父类型特征

常见用法

访问父类的构造方法

使用 super() 调用直接父类的构造方法。这必须在子类构造方法的第一行进行。

public class Parent {
    public Parent() {
        // 初始化代码
    }
}

public class Child extends Parent {
    public Child() {
        super(); // 调用父类的构造方法
        // 子类的初始化代码
    }
}
访问父类的成员变量

当子类和父类有相同名称的成员变量时,可以使用 super 来明确引用父类的成员。

public class Parent {
    protected int value = 10;
}

public class Child extends Parent {
    public void printValue() {
        System.out.println(super.value); // 引用父类的变量
    }
}

访问父类的方法

当子类重写了父类的方法时,可以使用 super 来调用父类中被重写的方法。

public class Parent {
    public void print() {
        System.out.println("Parent method");
    }
}

public class Child extends Parent {
    @Override
    public void print() {
        super.print(); // 调用父类的方法
        System.out.println("Child method");
    }
}

在多态上下文中使用

当通过子类引用调用方法时,super 将调用实际对象的父类版本的方法。

Child child = new Child();
child.print(); // 调用 Child 类中的 print 方法
Parent parent = child; // 多态
parent.print(); // 调用 Parent 类中的 print 方法
在静态上下文中使用

super 关键字不能在静态上下文中使用,因为静态上下文不与任何特定实例相关联。

在匿名内部类中使用

在匿名内部类中,super 可以用于访问外部类的方法和变量。

public class Outer {
    public void method() {
        new Thread() {
            public void run() {
                super.method(); // 调用外部类的方法
            }
        }.start();
    }
}

super 关键字是 Java 中实现继承和多态的重要工具,它允许子类访问和调用父类的功能。

posted @ 2024-08-01 12:51  wen-210162704027  阅读(2)  评论(0编辑  收藏  举报