zoukankan      html  css  js  c++  java
  • JAVA中的super和this关键字的使用

    一 this关键字

    this关键字可以出现在构造方法和实例方法中,不能出现在静态方法中,这是因为静态方法可以用类名来调用,这时可能还没有任何对象诞生。

    this主要有两种用法:

    1 用在构造方法中,调用本类的其他构造方法。  格式为  this([实参列表]);   通过this调用本类的其他构造方法时,该语句必须出现在构造方法中,并且必须作为第一条语句出现。

    2 代指当前对象

    例如:

     1 public class Person {
     2 
     3 private String name;
     4 
     5 private int age;
     6 
     7 private String gender;
     8 
     9 public  Person() { //构造方法一
    10 
    11 }        
    12 
    13 public  Person(String name, int age) {  //构造方法二
    14 
    15 this(name, age, null);                  //使用this关键字调用本类中的构造方法三
    16 
    17 }
    18 
    19 public Person(String name, int age1, String gender) {   //构造方法三
    20 
    21 this.name = name;                      //因为参数与类中的成员变量名相同,所以用this.name来表示成员变量
    22 
    23 age = age1;                            //因为参数与类中的成员变量名不同,所以可以不实用this.age,直接用age = age1
    24 
    25 this.gender = gender;
    26 
    27 }
    28 
    29 }

    二 super关键字

    super关键字有两种用法:

    1 在子类的构造方法中使用super关键字调用    直接父类     的构造方法,super语句必须是该子类构造方法中的第一句 。如果在子类中没有使用super关键字,系统会默认调用父类没有参数的构造方法,即隐含的使用super();语句,注意这时父类一定应该有一个无参数的构造方法。

    2 使用super关键字调用被子类隐藏的成员变量和方法。如果子类定义了和父类具有相同名字的成员变量,子类就隐藏了从父类继承的成员变量。如果子类定义的某个方法与父类定义的某个方法完全相同,从父类继承的该方法就被完全隐藏(即override,覆盖)。

  • 相关阅读:
    celery worker的工作模式
    动态加载js
    PHP加密解密
    js加载div, 元素事件不生效问题
    任意页面加载聊天框组件(也可用于其他)
    重装系统
    vue 跨域问题
    859. Buddy Strings
    316. Remove Duplicate Letters
    654. Maximum Binary Tree
  • 原文地址:https://www.cnblogs.com/sodawoods-blogs/p/4439230.html
Copyright © 2011-2022 走看看