自我整理基础知识,大佬勿喷。请多多指正,谢谢。
this:指向本类方法
super:指向父类方法
测试如下:
父类代码:
package com.example.client.controller;
public class Parent {
public static void par(String s) {
System.out.println(s);
}
Parent() {
par("父类--无参数构造方法");
}//无参构造
Parent(String name) {
par("父类--个参数的构造方法,参数名称" + name);
}//有参构造
}
子类代码:
package com.example.client.controller;
import org.junit.Test;
public class Son extends Parent {
Son() {
super(); // 调用父类无参数构造方法
par("子类--调用父类静态方法");
}
Son(String name) {
super(name);// 调用父类有参构造方法
par("子类--调用父类静态方法" + name);
}
Son(String name, int age) {
this(name);// 调用子类构造方法
par("子类:调用父类静态方法name、age" + age);
}
public static void main(String[] args) {
Son so = new Son();// 测试1
so = new Son("nan"); // 测试2
so = new Son("nan", 18); // 测试3
}
输出:
父类--无参数构造方法
子类--调用父类静态方法
父类--个参数的构造方法,参数名称nan
子类--调用父类静态方法nan
父类--个参数的构造方法,参数名称nan
子类--调用父类静态方法nan
子类:调用父类静态方法name、age18
总结:super首先调用父类的构造方法,this调用本类的方法