黑马程序员 ---- this 和 super 的方法调用

来源:互联网 发布:戴尔显卡切换软件 编辑:程序博客网 时间:2024/05/29 10:07

  ------- 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 主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。

0 0