Super关键字详解

20 篇文章 0 订阅
订阅专栏
本文详细介绍了Java中super关键字的三种用法:引用父类实例变量、调用父类方法以及调用父类构造函数。通过示例代码展示了如何在子类中通过super访问和操作父类的属性和方法,以及如何利用super调用父类的构造函数进行初始化。这些知识对于理解和使用Java继承特性至关重要。
摘要由CSDN通过智能技术生成

super关键字的用法如下:

  • super可以用来引用直接父类的实例变量。

  • super可以用来调用直接父类方法。

  • super()可以用于调用直接父类构造函数

1.super用于引用直接父类实例变量

可以使用super关键字来访问父类的数据成员或字段。 如果父类和子类具有相同的字段,则使用super来指定为父类数据成员或字段。

Animal和Dog都有一个共同的属性:color。 如果我们打印color属性,它将默认打印当前类的颜色。 要访问父属性,需要使用super关键字指定

class Animal {
    String color = "blue";
}

class Dog extends Animal {
    String color = "black";

    void printColor() {
        // prints color of Dog class
        System.out.println(color);
        // prints color of Animal class
        System.out.println(super.color);
    }
}
/**
 * @author zhouyanxiang
 * @create 2020-10-2020/10/30-8:24
 */
public class TestSuper1 {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.printColor();
    }
}

Java super关键字

Java super关键字

2.通过 super 来调用父类方法

super关键字也可以用于调用父类方法。 如果子类包含与父类相同的方法,则应使用super关键字指定父类的方法。 换句话说,如果方法被覆盖就可以使用 super 关键字来指定父类方法。

Animal和Dog两个类都有eat()方法,如果要调用Dog类中的eat()方法,它将默认调用Dog类的eat()方法,因为当前类的优先级比父类的高。所以要调用父类方法,需要使用super关键字指定。

class Animal {
    void eat() {
        System.out.println("Animal eat something");
    }
}
class Dog extends Animal {
    @Override
    void eat() {
        System.out.println("Dog eat something");
    }

    void bark() {
        System.out.println("bark");
    }

    void work() {
        super.eat();
        eat();
    }
}

public class TestSuper2 {

    public static void main(String[] args) {
        Dog d = new Dog();
        d.work();
    }

}

Java super关键字

Java super关键字

3.使用 super 来调用父类构造函数

super关键字也可以用于调用父类构造函数。下面来看一个简单的例子

Java super关键字

我们知道,如果没有构造函数,编译器会自动提供默认构造函数。 但是,它还添加了super()作为第一个语句。

下面是super关键字的另一个例子,这里super()由编译器隐式提供。

Java super关键字

Java super关键字

super实际使用示例

下面来看看super关键字的实际用法。 在这里,Emp类继承了Person类,所以Person的所有属性都将默认继承到Emp。 要初始化所有的属性,可使用子类的父类构造函数。 这样,我们重用了父类的构造函数。

package superthree;

/**
 * @author zhouyanxiang
 * @create 2020-10-2020/10/30-8:38
 */
class Animal {
    private Integer id;
    private String name;

    public Animal (Integer id, String name) {
        this.id = id;
        this.name = name;
    }
}
class Dog extends Animal {
    private String color;

    public Dog(Integer id, String name,String color) {
        super(id, name);
        this.color = color;
    }

    void printColor() {
        System.out.println(this.color);
    }
}
public class TestSuper3 {

    public static void main(String[] args) {
        Dog d = new Dog(1,"tom","yellow");
        d.printColor();
    }

}

Java super关键字

Java super关键字

Java 基础】引用型数组、Java 继承、super 关键字详解
商务合作 | 共同学习 | 携手共进
04-29 2万+
Java 语法篇 —— 引用型数组、继承、Super关键字详解
Java小白入门200例83之Java super关键字详解
编程界明世隐的博客
10-03 388
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通JavaJavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大
java基础学习总结——super关键字
weixin_33908217的博客
04-01 166
一、super关键字      在JAVA中使用super来引用父的成分,用this来引用当前对象,如果一个从另外一个继承,我们new这个子的实例对象的时候,这个子对象里面会有一个父对象。怎么去引用里面的父对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。 1.1.super关键字测试 1 package cn.gal...
面向对象编程(十)——继承之Super关键字及内存分析
weixin_33895475的博客
02-01 148
Super关键字      在JAVA中使用super来引用父的成分,用this来引用当前对象,如果一个从另外一个继承,我们new这个子的实例对象的时候,这个子对象里面会有一个父对象。怎么去引用里面的父对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。 super是直接父对象的引用。可以通过super来访问父中被子覆...
super关键字
chen404897439的博客
06-09 284
在成员方法中调用成员变量规则: 局部变量:直接写变量名 成员变量:this.变量名 父变量:super.变量名 参考子line 8 -10 父程序: package cn.dali.code14; public class Fulei { int num = 1; public void Fu(){ System.out.println(""); }...
Java进阶——super关键字
LiLi的博客
11-15 338
1 super是一个关键字,全部小写 2 super和this对比着学习 this: this能出现在实例方法和构造方法中 this的语法是:“this.”、“this()” this不能使用在静态方法中 this.大部分情况下是可以省略的 this.什么时候不能省略呢?在区分局部变量和实例变量的时候不能省略 public void setName(String name){ this.name = name; } this()只能出现在构造方法第一行,通过当前的构造方法去调用“本
Java继承extends与super关键字详解
08-27
Java继承extends与super关键字详解 Java继承机制是面向对象编程(Object-Oriented Programming)的一个基本概念,它允许子继承父的特征和行为,使得子具有父相同的行为。Java中使用extends关键字来表示...
JAVA基础——this和super关键字详解
CHB的博客
09-16 587
文章目录thissuperthis和super的异同以及注意事项 在Java中,继承时会经常用到this和super关键字,在这里做一下简单的总结,如果有错误希望大家指正。 this this是自身的一个对象,代表对象本身,可以看作:指向对象本身的一个指针。 一般来讲,this有三种用法。 1.引用当前对象 这个没什么好说的,this本身就可以看作对象本身的一个指针。放在里表示的本身的对象,可以使用中的属性和方法。 2.当方法的形参和成员名字相同时加以区分 在Java中,如果一个方法的形参和方法里面
java方法重写和super关键字实例详解
08-31
Java 方法重写和 super 关键字实例详解 Java 方法重写是 Java 编程语言中的一种机制,允许子提供特定于自己的实现以替代父的方法。这种机制可以使得子可以根据自己的需求来修改父的方法,以满足自己的需求...
super关键字详解
淮宁湾的博客
01-26 4125
super关键字详解 由于子不能继承父的构造方法,因此,如果要调用父的构造方法,可以使用super关键字super可以用来访问父的构造方法,普通方法和属性。 super关键字的功能: 在子的构造方法中显式的调用父构造方法 访问父的成员方法和变量。 super调用父构造方法 super关键字可以在子中的构造方法中显示地调用父的构造方法,基本格式如下: super(argument-list); 其中,argument-list指父构造方法中的参数列表。super()必须是在子
Super关键字
weixin_55782195的博客
03-05 7574
Super关键字的使用 1. Super关键字 1.1 super可以理解为父的,super可以用来调用属性、方法、构造器 2. Super关键字的使用 2.1 我们可以在子的方法或构造器中,通过使用“super.属性”或“super.方法”的方式,显示调用父中声明的属性和方法,但通常情况下,我们习惯省略super 2.2 特殊情况: (1) 当父与子定义了同名属性时,我们想调用父生命的属性时,则必须显示使用“super.属性”的方式,表明调用的是父中声明的属性 (2)当子重写了父的方法
super 关键字
小草莓的博客
07-20 287
super和this很似,可以对比着学习 1、先复习一下this关键字的使用 this指向的是当前对象自己 this能出现在实例方法和构造方法中; this的语法是“this.”和“this()”; this不能出现在静态方法中; this大部分情况下是可以省略的; this.什么时候不能省略呢? 在区分局部变量和实例变量时不能省略 this()只能出现在构造方法的第一行,通过当前的构造方法去调用“本”中的对应的构造方法,目的是:代码复用。 Public void setName(String n
super关键字的用法
weixin_42845574的博客
06-03 840
/* super关键字的用法有三种: 1.在子的成员方法中,访问父的成员变量。 2.在子的成员方法中,访问父的成员方法。 3.在子的构造方法中,访问父的构造方法。 */ public class Zi extends Fu { int num = 20; public Zi(){ super(); } public void methodZi(){ System.out.println(super.num); //父中的nu
super关键字的介绍
最新发布
zhaodds的博客
10-20 184
特殊情况:当子重写了父中的方法以后,想在子的方法中调用父中被重写的方法时,则必须显式的使用super.方法的方式,表明调用的是父中被重写的方法。可以在子的方法或构造器中,通过使用super.属性或super.方法的方式,显式的调用父中声明的属性或方法。特殊情况:当子和父中定义了同名的属性时,想要在子中调用父中声明的属性,则必须显式的使用super.属性的方式,表明调用的是父中声明的属性。我们可以在子的构造器中显式的使用super(形参列表)的方式,调用父中声明的指定的构造器。
Super关键字的用法
m0_46371615的博客
02-26 1441
Super关键子的一些用法 java super表示使用它的的父(注意:super只发生在子中),有以下用法: 1、调用父的构造方法 2、调用父的方法(子覆盖了父的方法时) 3、访问父的数据域(可以这样用但是没必要这样用) (1)调用父的构造方法语法: 当父只有一个参数的构造函数的时候,子也必须要具有这个构造函数,或者调用super方法实现新的构造函数。 举一个例子: 如果父有定义构造函数而子不定义构造函数: 就会出现这样的错误: 如果需要定义新的构造函数(有一点需要注意的是在
Java中的this与super关键字详解
"深入理解Java中的this和super关键字" 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在处理的继承关系时起到关键作用。了解并熟练运用这两个关键字对于编写清晰、高效的代码至关重要。 首先,...
写文章

热门文章

  • Spring的IOC和AOP原理 26448
  • Linux配置java环境变量 18694
  • mybatis关于出现Parameter ‘XXX‘ not found. Available parameters are [collection, list]问题的解决方案 16686
  • IDEA连接数据库之后没有显示数据库里面的表 16167
  • idea2019 active code亲测有效 15543

分类专栏

  • Android 2篇
  • 好的面试题
  • Kafka
  • 源码阅读专栏
  • JUC
  • C++ 8篇
  • JavaSE 20篇
  • 纠正其他博主发的易误导别人的水文 4篇
  • 数据库 10篇
  • Oracle 1篇
  • MySQL 14篇
  • Redis 37篇
  • IDEA 2篇
  • 消息队列 1篇
  • JWT 1篇
  • Spring MVC 1篇
  • 操作系统 9篇
  • bug遇到的坑 3篇
  • Kubernetes 1篇
  • 前端 5篇
  • Vue 3篇
  • node.js 1篇
  • Netty 4篇
  • ISO8583报文 1篇
  • 计算机网络 12篇
  • Git 3篇
  • 从算法题得出的实际应用感悟 1篇
  • JVM 8篇
  • 技术了解网站 5篇
  • 设计模式 26篇
  • Leecode 43篇
  • Fastdfs 1篇
  • 数据结构和算法 35篇
  • 动态规划 2篇
  • 2篇
  • 链表 2篇
  • 笔试面试 11篇
  • 笔试/面试专栏 12篇
  • 蓝桥杯 5篇
  • docker 6篇
  • Linux常用命令 4篇
  • MATLAB 1篇
  • nginx 4篇
  • mybatis 4篇
  • Spring 7篇
  • springBoot 5篇
  • ElasticSearch 5篇
  • Zookeeper 3篇
  • JavaWeb 4篇
  • 开发配置 46篇

最新评论

  • 部署hexo遇到报错ERROR Deployer not found: git的解决办法

    yyiffe: 部署开服一条龙: [code=bash] npm install hexo-cli -g hexo init blog cd blog npm install hexo server [/code]

  • Centos8使用yum报错 Couldn‘t resolve host name for http://mirrorlist.centos.org/?releas

    yu17817689567: 补充一下,如果是extras-common这个寄的话,数据源: https://mirrors.aliyun.com/centos/$releasever-stream/extras/$basearch/extras-common/

  • Centos8使用yum报错 Couldn‘t resolve host name for http://mirrorlist.centos.org/?releas

    main859: 这个靠谱。 还报错的话,注意可能你要改4个或多个文件,具体哪个文件下载失败了就去改哪个文件的数据源

  • 部署hexo遇到报错ERROR Deployer not found: git的解决办法

    littleSevenThirty: 为什么我使用npm install 不行,需要使用cnpm install,我已经挂了梯子了的呀?

  • kswapd0进程对于CPU占有率高的情况下排查到黑客植入脚本,与黑客斗智斗勇的三个回合

    柯南二号: 理论上防火墙+端口对公网关闭一部分可以达到这个目的

最新文章

  • arm64-v8a 和 armeabi-v7a、armeabi 有什么区别
  • 平均值、P50、P75、P95、P99.9百分位数值——服务响应时间的重要衡量指标
  • LottieCompositionFactory.fromUrl 加载lottie的json文件
2024年9篇
2023年25篇
2022年60篇
2021年62篇
2020年178篇
2019年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家杭州商场圣诞美陈玻璃钢雕塑神像梅州玻璃钢动物雕塑费用是多少玻璃钢小羊动物雕塑定制辽宁人物玻璃钢雕塑公司吉祥物玻璃钢卡通动物雕塑上海季节性商场美陈批发綦江广场玻璃钢雕塑泰安玻璃钢雕塑公司即墨玻璃钢花盆花器绍兴玻璃钢十二生肖雕塑拉丝玻璃钢雕塑制造厂家落地式玻璃钢花盆玻璃钢乐高警察雕塑莞城玻璃钢卡通雕塑浙江大型商场美陈现价大庆景区玻璃钢雕塑生产厂家金昌仿真人物玻璃钢雕塑制作沈阳玻璃钢雕塑雕塑福建仿铜玻璃钢雕塑厂家福建室内商场美陈采购运城玻璃钢海豚雕塑定制玻璃钢雕塑人物厂家深圳玻璃钢卡通雕塑造型沈阳玻璃钢雕塑公司招聘玻璃钢做雕塑还是钢板做温州玻璃钢雕塑定制玻璃钢酒店人物雕塑哪家好玻璃钢白鸽雕塑模型批发玻璃钢雕塑加工公司哪里有香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化