zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    处理在finally中出现的异常(Java)
    【转】alt和title属性的区别及应用
    IE6下兼容CSS属性minheight的解决办法
    javascript中判断字符串是否以指定字符串开始或结尾
    IE6兼容改造中的反思
    字符操作函数
    魔术公式
    抽象类和纯虚函数
    悬空指针
    重载
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11876174.html
Copyright © 2011-2022 走看看