30面向对象(中级)-super关键字

1基本介绍

2.super带来的好处

(1)调用父类的构造器的好处(分工明确,父类属性由父类初始化,子类的属性由子类初始化)

(2)当子类中有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。如果没有重名,使用super、this、直接访问是一样的效果!

java 复制代码
public class A{

    public void cal(){
    
        System.out.println("A类的cal()方法....")
    }
}
public class B extends A {


    public void sum(){
        System.out.println("B类的sum()");
        //希望调用父类-A的cal方法
        //这时,因为子类B没有cal方法,因此我可以使用下面三种方式
        
        //第一种
        //找cal方法时,顺序是:
        //(1)先找本类,如果有,则调用
        //(2)如果没有,则找父类(如果有,并可以调用,则调用)
        //(3)如果父类没有,则继续找父类的父类,整个规则,就是一样的,直到 0bject类//提示:如果查找方法的过程中,找到了,但是不能访问,则报错如果查找方法的过程中,没有找到,则提示方法不存在
I
        cal();

        //第二种 this方法
        this.cal();    //等价于第一种

        //第三种 super方法
        super.cal();    // 找cal方法的顺序是直接查找父类,其他的规则一样
    }


}

(3)super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员;如果多个基类(上级类)中都有同名的成员,使用super访问遵循就近原则。A->B->C。 当然也需要遵守访问权限的相关规则

3.与this关键字比较

相关推荐
happymaker06261 分钟前
Spring学习日记——DAY06(事务管理)
java·学习·spring
兰令水4 分钟前
topcode【随机算法题】【2026.5.14打卡-java版本】
java·算法·leetcode
雪度娃娃4 分钟前
结构型设计模式——代理模式
java·c++·设计模式·系统安全·代理模式
万邦科技Lafite5 分钟前
京东商品详情 API 接口全面讲解
java·数据库·redis·api·电商开放平台
折哥的程序人生 · 物流技术专研16 分钟前
Java面试85题图解版 · 全系列总目录
java·开发语言·后端·面试·职场和发展
武子康22 分钟前
Java-01 深入浅出 MyBatis 入门与核心原理:半自动 ORM 框架详解
java·后端·mybatis
木易 士心25 分钟前
Java 跳出多层循环
java·开发语言·后端
数电发票API26 分钟前
数电发票接口对接流程详解:从认证到冲红的完整指南
java
float_com31 分钟前
【java进阶】------ 多线程【上】
java
吴声子夜歌32 分钟前
Java——通用容器类
java·容器