当前位置: 当前位置:首页 > 休闲 > Java基础——this和super关键字 正文

Java基础——this和super关键字

2024-05-08 18:30:46 来源:口口声声网 作者:焦点 点击:191次

Java基础——this和super关键字

🏡个人主页 :@ 守夜人st
🚀系列专栏:java
…持续更新中敬请关注…
🙉博主简介:软件工程专业,基础在校学生,关键写博客是基础为了总结回顾一些所学知识点

✈️推荐一款模拟面试,刷题,关键从基础走向大场面试👉 开启你的基础刷题之路吧

Java基础——this和super

this关键字

  • this能出现在实例方法和构造方法中
  • this的语法是:“this.”,“this()”
  • this不能使用在静态方法中
  • this.大部分情况下是关键可以省略的
  • this.什么时候不可以省略?

在区分局部变量和实例变量的时候不能省略

public void setName(String name){    this.name = name;}

this()只能出现在构造方法的第一行,通过当前构造方法调用其他构造方法,基础实现代码复用。关键

super关键字

  • super能出现在实例方法和构造方法中
  • super的基础语法是:“super.”,“super()”
  • super不能使用在静态方法中
  • super.大部分情况下是关键可以省略的
  • super.什么时候不可以省略?

父类和子类有相同的属性或方法时,想通过子类访问“父类特征”时,基础super.不能省略。关键

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

重要结论:

既没有this()又没有super()的话,默认会有一个super();

表示通过当前子类的构造方法调用父类的无参构造方法。

所以必须保证父类的无参构造方法是存在的!!!

this()和super()不能共存,它们都是只能出现在构造方法的第一行!!!

一个实例程序带你了解this和super

package com.shouyerenst.OOP;public class SuperTest{    public static void main (String[] args){        new C();    }}class A{    public A(){        //这里默认有super();        System.out.println("1");    }}class B extends A{    public B() {        //这里默认有super();        System.out.println("2");    }    public B(String name){        //这里默认有super();        System.out.println("3");    }}class C extends B{    public C() {        this("zhangsan");        System.out.println("4");    }    public C(String name) {        this(name,20);        System.out.println("5");    }    public C(String name,int i) {        super(name);        System.out.println("6");    }}

这里大家可以好好思考一下输出结果是什么

13654

总结

super的使用:

​ super.属性名 【访问父类的属性】

​ super.方法名 【访问父类的方法】

​ super(实参) 【调用父类的构造方法】

算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的
现在算法刷题平台还是蛮多的,给大家介绍一个我认为与大厂关联最深的平台——牛客网 跳转链接

在这里插入图片描述

感觉不错的话,动手点个赞吧!
作者:时尚
------分隔线----------------------------
头条新闻
图片新闻
新闻排行榜