java中的super怎么用?

来源:互联网 发布:淘宝联盟跟不到单 编辑:程序博客网 时间:2024/04/28 22:38
                Super就是用来调用父类的东西的。比如调用父类的方法或成员变量。
class Person{ public int c=12; private String name; private int age; protected void setName(String name){  this.name=name; } protected void setAge(int age){  this.age=age; } protected void print(){  System.out.println("Name="+name+" Age="+age); }}



public class DemoSuper extends Person{ public void print(){  System.out.println("DemoSuper:");  super.print(); System.out.println(super.c);} public static void main(String[] args){  DemoSuper ds=new DemoSuper();  ds.setName("kevin");  ds.setAge(22);  ds.print(); }}


其运行结果为:


Super还可以用来调用构造方法如:

class Person2{ public static void prt(String s){  System.out.println(s); } Person2(){  prt("A Person."); } Person2(String name){  prt("A person name is:"+name); }}


public class Chinese extends Person2{Chinese(){  super(); //调用父类构造函数(1)  prt("A chinese.");//(4) } Chinese(String name){  super(name);//调用父类具有相同形参的构造函数(2)  prt("his name is:"+name); } Chinese(String name,int age){  this(name);//调用当前具有相同形参的构造函数(3)  prt("his age is:"+age); } public static void main(String[] args){  Chinese cn=null;cn=new Chinese();  cn=new Chinese("kevin");  cn=new Chinese("Tom",22); }}

在这段程序中,this和super不再是像以前那样用“.”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。