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();
        }
    }
  • 相关阅读:
    poj 1182食物链
    几何原本查询程序1.0
    code forces 548C:Mike and frog
    CC2530串口通信
    CC2530定时器的应用
    CC2530应用——按键控制灯光状态变化
    步入LTE、多址技术
    定时器之基于模模式的间隔定时
    CC2530定时器
    配置路由器(1)
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11876174.html
Copyright © 2011-2022 走看看