• Java中super关键字的位置


    1.子类的构造函数如果要引用super的话,必须把super放在函数的首行。

    例如:

    class Base  {
    
        Base()  { 
    
            System.out.println("Base"); 
        }
     } 
    
    public class Checket extends Base { 
    
        Checket() {
    
            //调用父类的构造方法,一定要放在方法的首个语句
             super();
            System.out.println("Checket"); 
        } 
    
    public static void main(String argv[]) {
    
         Checket c = new Checket();
      }
    }

    同时,当父类构造函数有参数时,可以调用super(value),同样地,也需要将其放置在构造函数第一行。super()在第一行的原因就是:子类有可能访问了父类对象, 比如在构造函数中使用父类对象的成员函数和变量, 在成员初始化使用了父类, 在代码块中使用了父类等, 所以为保证在子类可以访问父类对象之前要完成对父类对象的初始化。

    2.若super只是在普通方法中使用时,不需要放置在第一行,表示使用父类的成员方法。

    如:

    class Country {
    
        String name;
    
        void value() {
            name = "China";
        }
    }
    
    class City extends Country {
    
        String name;
    
        void value() {
            name = "Hefei"; 
    
            //不调用此方法时,super.name 返回的是父类的成员变量的值 null 
            super.value();
    
            System.out.println(name);
            System.out.println(super.name); 
        }
    
    public static void main(String[] args) {
    
            City c=new City(); 
            c.value();
        }
    }
  • 相关阅读:
    python入门19 异常及异常处理 异常捕获
    python入门18 继承和多态
    python入门17 类和对象
    python入门16 递归函数 高阶函数
    接口测试get请求url拼接函数(python)
    python入门15 函数
    ssh tunnel 三种模式
    k8s 容器的生命周期钩子
    对k8s service的一些理解
    windows下使用pyinstaller把python文件打包成exe可执行文件
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11876174.html
Copyright © 2020-2023  润新知