Java学习8(super)

Java学习8

转变一下学习的方式内容,希望能坚持下去学进去,争取早点达到毕业要求,今天看完零基础

super

  1. super 是一个关键字,全部小写
  2. super和this对比学习
    this:
    this能出现在实例方法和构造方法中
    this 的语法是:“this.”和“this()”
    this不能使用在静态方法中
    this. 大部分情况下是可以省略的
    this. 在区分局部变量和实例变量时是不能省略的
    this()只能出现在构造方法第一行,通过当前构造方法区调用“本类”中其他构造方法,目的是:代码复用

super:
super能出现在实例方法和构造方法中
super 的语法是:“super.”和“super()”
super.属性名【访问父类的属性】
super.方法名(实参)【访问父类的方法】
super(实参)【调用父类的构造方法】
super. 不仅可以访问属性,也可以访问方法
super不能使用在静态方法中
super. 大部分情况下是可以省略的
super. 父类和子类当中有同名属性,并且希望在子类中访问父类中的同名属性,super.不能省略
( this.name:当前对象的name属性
super.name:当前对象的父类型特征中的name属性)

super()只能出现在构造方法第一行,通过当前构造方法区调用“父类”中其他构造方法,
目的是:创建子类对象的时候,先初始化父类型的特征

super()
表示通过子类的构造方法调用父类的构造方法
模拟现实世界中的这种场景:要想有儿子,必须先有父亲
super代表的是“当前对象(this)的父类型特征”

super不是引用,super也不保存内存地址,super也不指向任何对象,super只是代表当前对象内部的那一块父类型的特征

当一个构造方法第一行:
既没有this()又没有super()的时候,默认会有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法,所以必须保证父类的无参数构造方法是存在的。
this()和super()不能共存,它们都只能存在构造方法的第一行
无论怎么折腾,父类的构造方法是一定会执行的
所以一个类的无参数构造方法最好还是写出来,如果无参数构造方法丢失的话,可能会影响到“子类对象的创建”

在java语言中不管是new什么对象,最后老祖宗的Object类的无参数构造方法一定会执行(Object类的无参数构造方法是处于“栈顶部”)

在构造方法执行过程中,一连串的调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的构造方法,但是实际上对象只创建了一个

“super(实参)”到底是干什么的?初始化对象的父类型的特征,并不是创建对象,实际上对象创建了一个

super关键字代表的就是“当前对象”的那部分父类型特征

java中允许在子类中出现和父类同名变量/同名属性

system.exit(0); //退出JVM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值