------- android培训、java培训、期待与您交流! ----------
this 的方法调用
例1:
class Persoc
{
private String name;
private int age;
Persoc(String name)
{
this.name = name;
}
Persoc(String name,int age)
{
this(name); //调用本类中的另一个构造函数Persoc ,此处this代表p1.
this.age = age;
}
public void talk()
{
System.out.println("name="+name+"\tage="+age);
}
}
public class JavaTest5 {
public static void main(String[] args) {
Persoc p1 = new Persoc("wang",23);
p1.talk();
}
}
运行结果:
name=wang age=23
点评: 1. this语句用于本类中构造函数之间的互相调用。一般函数不能直接调用构造函数。
2. this 语句只能定义在构造函数的第一行,因为初始化要先执行。
super 的方法调用
例1:
class Fu
{
Fu()
{
System.out.println("fu run");
}
}
class Zi extends Fu
{
Zi()
{
//super(); // 此处的 super 是隐式语句,调用父类中的空参数函数 Fu(),如果父类中没有空参数函数,那么调用失败。
// 如果父类中没有空参数函数,都带有参数(例:Fu(int x);),那么在子类中 super 都必须做成显式语句。(例: super(3);)
System.out.println("zi run");
}
Zi(int x)
{
//super();
System.out.println("zi...."+x);
}
}
class privateTest
{
public static void main(String[] args)
{
Zi z = new Zi();
Zi z1 = new Zi(4);
}
}
运行结果:
fu run
zi run
fu run
zi....4
例2:super 调用父类中的构造方法
class Person
{
String name;
int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
}
class Student extends Person
{
String school;
public Student()
{
super("zhangsan",25); // super 调用父类中的构造方法. 由于要调用的父类中的构造函数不是空参数的,所以要将子类中的 super 做成显示语句。
} // 和属性不同,父类的构造方法是不被子类继承的,他们只能从子类的构造方法中用关键字 super 调用。
}
class Test01
{
public static void main(String[] args)
{
Student s = new Student();
s.school = "shanxi";
System.out.println("name="+s.name+",age="+s.age+",school="+s.school);
}
}
范例分析:super 主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。