Java的super的知识点

三叶草. 2025-05-21 23:15:47

在 Java 里,super是一个非常重要的关键字,主要用于访问父类的成员。

1. 访问父类的构造方法

  • 语法super(参数列表)
  • 使用场景:在子类的构造方法里调用父类的构造方法。
  • 注意要点
    • 该调用必须是子类构造方法里的第一条语句。
    • 若没有显式调用,系统会默认调用父类的无参构造方法(即super())。
    • 一旦父类没有无参构造方法,子类就必须显式调用父类的其他构造方法。

 

示例

class Animal {
    private String name;
    public Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    public Dog(String name) {
        super(name); // 调用父类的构造方法
    }
}

. 访问父类的成员变量

  • 语法super.变量名
  • 使用场景:当子类中定义的变量和父类的变量重名时,访问父类的变量。

 

示例

class Parent {
    protected int num = 10;
}

class Child extends Parent {
    private int num = 20;
    
    public void printNumbers() {
        System.out.println(num);      // 输出子类的num(20)
        System.out.println(super.num); // 输出父类的num(10)
    }
}

3. 访问父类的成员方法

  • 语法super.方法名(参数列表)
  • 使用场景:在子类重写了父类的方法后,想要调用父类原有的方法。

 

示例

class Shape {
    public void draw() {
        System.out.println("绘制形状");
    }
}

class Circle extends Shape {
    @Override
    public void draw() {
        super.draw(); // 调用父类的draw方法
        System.out.println("绘制圆形");
    }
}

 

...全文
6 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

118

社区成员

发帖
与我相关
我的任务
社区描述
这里专为新疆政法学院的探索者而建,英雄不问出处。起跑线是起点,热忱与坚持为加速器,无论bug缠身的项目,还是攻克的算法顿悟,每滴汗水皆被珍藏。执炬前行,终将照亮彼此峰顶,我们携手同行。
课程设计笔记经验分享 高校 新疆·图木舒克市
社区管理员
  • 雲中203
  • SHAO060706
  • Poeir_
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

英雄不问出处

试试用AI创作助手写篇文章吧