this与super

简介: java oop概念 this与super

this

含义:this关键字代表对象自身的引用。本质是引用!!!!
使用场景:
用在构造方法中,调用重写构造方法

class Employee {
    String name;
    int age;
    double salary;
 
    Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
}

用在方法成员变量和参数重名时,避免参数二义性。

public class Dog {
    String name;
    int age;
    int id;/*
             * 方法中的变量与属性重名
             */
 
    public Dog(String name) {
        id++;
        this.name = name;
    }
 
    public Dog() {
    }
 
    /*
     * 在一个构造方法中,调用其他重载的构造方法
     */
    public Dog(String name, int age) {
        this(name);
        this.age = age;
    }
 
    /*
     * 把this作为一个局部变量,它的值是当前对象的引用
     */
    public Dog clone() {
        id++;
        return this;
    }
 
    public void print() {
        System.out.println("it is " + name + " number " + id);
    }
 
    public static void main(String args[]) {
        Dog wangcai = new Dog("Cai Wang");
        Dog wangwang = new Dog("Wang Wang");
        wangcai.print();
        wangwang.print();
        Dog wangcai1 = wangcai.clone();
        wangcai1.print();
        wangwang.clone().clone().print();
    }
}

super

含义:父对象(所以,super只会在继承中出现)

使用场景:

子类调用父类的字段。在子类中使用super.age=44,代表将父类的age字段的值设置为44 。
子类调用父类的方法。在子类中使用super.say();代表在子类中调用了父类的say方法。
子类调用父类的构造方法。super()或者super(x,y)分别代表调用父类的无参和有参构造方法。
注意:

super、this都可以出现构造方法中。且都必须在第一行。

相关文章
定义类,super的使用,super的使用
要求: a.需要有一个类变量 b.需要有>=2个的对象变量 c.定义一个方法:打印类变量和对象变量 d.使用print打印对象->输出为This is a object e.实例化两个对象:且两个对象相加等于2 f.为对象添加一个临时变量temp_var
54 0
14-self与super以及isMemberOfClass与isKindOfClass的区别
14-self与super以及isMemberOfClass与isKindOfClass的区别
50 0
|
Java Android开发
构造器里面的super()有什么用?到底写不写?
平时写的单独一个类如果没有直接继承父类就是直接继承的Object,有父类就是间接继承的Object,因为父类会继承Object,java的所有类都是Object的子类,哪怕不写super(),也会默认调用的父类的空构造器。
115 0
|
Java
Java关键字super
Java关键字super
84 0
Java关键字super
override 指示符
override 指示符
79 0
|
架构师 Java
this与super
this与super
103 0
|
Java 编译器
super&this
类在继承时会用到this和super,this通常指当前对象,super则指父类的。
274 0
|
开发者 Python
Super()|学习笔记
快速学习 Super()
104 0