Java中的this与super关键字
2021-01-30 02:13
标签:nbsp com private public xtend width img 调用 父类 构造方法之间的调用,可以通过this关键字来完成。只能在本类中构造方法里用,也只能调用构造方法。不能用在普通方法。 调用其他构造方法的语句必须定义在构造方法的第一行,原因是初始化动作要最先执行。 可以在成员变量名前面加上this.来区别成员变量和局部变量。 1、在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句。 2、当子类调用父类的构造方法时,用super(); 3、this调用了本类其他构造方法,那么super调用父类的语句没有的,因为初始化动作要先执行。主要在构造方法中直接或者间接的调用super()就可以完成初始化。(在开始的位置写本类的,在后面的方法中的调父类的)。 4、Java体系在设计,定义了一个所有对象的父类Object。 Java中的this与super关键字 标签:nbsp com private public xtend width img 调用 父类 原文地址:https://www.cnblogs.com/heitaitou/p/12814987.htmlthis关键字:
this(参数列表);
public class Person {
private String name;
private int age;
//调用本类成员:this.成员(属性/方法)
//构造方法之间的调用:this(参数列表)
//注意事项:构造方法中的this()必须放在第一行,否则报错
public Person(){
this("小红",18);
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Demo01 {
public static void main(String[] args) {
Person p=new Person();
System.out.println(p.getName());
}
}
super关键字:
解决this和super谁在第一行的问题 间接的方式分开
public class Zi extends Fu{
//在子类中用super.成员(方法/属性)调用父类成员
//在子类构造方法中用super(实参)调用父类构造方法
//注意事项:显示指定super()必须放在构造方法第一行
public Zi(){
//每个类中的构造方法默认第一行都有
//super();
//调用父类构造方法
//super("小红帽");
}
public Zi(String name){
super("小红帽");
//super();
}
}