• Java学习 --- super关键字


    目录

    一、super是什么

    二、基本语法

    三、super注意事项


    一、super是什么

    super代表父类的引用,用于访问父类的属性、方法、构造器

    二、基本语法

    1、访问父类的属性,但不能访问父类的私有(private)属性。super.属性名

    2、访问父类的方法,但不能访问父类的私有(private)方法。super.方法名[形参列表]

    3、访问父类的构造器,只能在构造器的第一句,且只能出现一句。

    A类

    1. public class A {
    2. public int n1 = 100;
    3. protected int n2 = 200;
    4. int n3 = 300;
    5. private int n4 = 400;
    6. public A(int n1) {
    7. this.n1 = n1;
    8. }
    9. //四种不同类型的方法
    10. public void test1(){
    11. System.out.println("test1");
    12. }
    13. protected void test2(){
    14. System.out.println("test2");
    15. }
    16. void test3(){
    17. System.out.println("test3");
    18. }
    19. private void test4(){
    20. System.out.println("test4");
    21. }
    22. }

    B类

    1. public class B extends A {
    2. //访问父类的属性
    3. public void b1(){
    4. System.out.println(super.n1 + super.n2 + super.n3);
    5. }
    6. //访问父类的方法
    7. public void b2(){
    8. super.test1();
    9. super.test2();
    10. super.test3();
    11. }
    12. //访问父类构造器
    13. public B() {
    14. super(1);
    15. }
    16. }

    三、super注意事项

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

    1. public class A {
    2. public void test(){
    3. System.out.println("A类的test方法");
    4. }
    5. }
    1. public class B extends A {
    2. public void test(){
    3. System.out.println("B类的test方法");
    4. }
    5. public void b1(){
    6. //test();方法一:直接调用
    7. //this.test();//方法二:使用this关键字调用,等于方法一
    8. super.test();//方式三:使用super关键字调用,super会直接从父类查找该方法
    9. }
    10. }

    方法调用规则:

    ①、先在本类查找,如果有该方法,就调用

    ②、当在本类中没有找到该方法,就去父类查找,如果有该方法,就调用。

    ③、当父类没有找到该方法,就一直往上一级查找,直到Object类。

    ④、在查找方法的过程中如果找到,但不能访问就会报错,如果没有,就会提示该方法不存在。

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

    3、super的访问不限于直接父类,当父类的父类有同名的成员,也可以使用super去访问父类的父类的成员,当多个基类中有同名的成员,使用super访问依旧遵循就近原则。

    4、super与this的比较

     

  • 相关阅读:
    websocket在django中的运用
    linux通用时钟框架(CCF)
    负载开关、高侧开关、低侧开关等
    运维常见的22个故障排查和10个问题解决技巧大汇总!
    如何让设计师快速提高设计美感?这5个网站就够了
    通过 Nginx 实现多机负载均衡
    导电滑环的检查方法
    01.Singleton单件(单例)
    图说论文《LSM-based Storage Techniques: A Survey》
    快速幂及矩阵快速幂
  • 原文地址:https://blog.csdn.net/qq_46093575/article/details/126800432