Java基础-this和super的区别

2018-06-18 02:27:18来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

package com.cn.This;
/**
 * this与super的区别:
 * 1.this相当于指向本类的对象的指针,调用本类的另一种类型的构造方法
 * 2.super调用的是父类中形参相同的构造方法
 * 3.两者都需要放在构造方法内的第一行
 * 4.两者不能同时出现在一个构造函数中,因为this必然会调用其他的构造函数,进而会产生两个super
 * 5.两者都指对象,所以不能在含有static的环境中使用
 * @author P0111220
 *
 */
class Person{
    public void pro(String msg) {
        System.out.println(msg);
    }
    public Person() {
        // TODO Auto-generated constructor stub
        pro("父类的无参构造方法!!");
    }
    public Person(String mString){
        pro("父类含一个参数的构造方法:"+mString);
    }
}
class Chinese extends Person{
    public Chinese() {
        // TODO Auto-generated constructor stub
        super();//调用父类的构造方法
        pro("调用父类的无参构造方法");
    }
    public Chinese(String name){
        super(name);//形参相同指的是参数类型相同,参数名可以随便
        pro("调用父类相同形参类型的方法:"+name);
    }
    
    public Chinese(String name,int age){
        this(name);//相当于指向本类中另一种类型的构造方法
        pro("age:"+age);
    }
}
public class ThisSuperTest {
    public static void main(String[] args) {
        Chinese chinese= new Chinese();
        chinese = new Chinese("狗子");
        chinese = new Chinese("狗子",12);
    }
}
View Code

关于Java中this和super关键字的一些理解,代码中注释出都做了标注,也贴出了运行结果,希望对各位有用。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java关于main和public的一点小问题

下一篇:【高并发解决方案】7、HAProxy安装和配置