基本用法
super关键字和this关键字有很大程度上的相似,对于关键字super的的解释,也和this差不多,但是值得一提的是,super中,子类继承自父类时,super(和父类相同的属性);this.自己特有属性。实现子类对父类中共同属性的调用,减少代码书写量,提高了程序执行的效率。
1) 它的使用方式有两种:
a) super.属性 或 super.方法
b) super() 或 super(参数)
2) 它的含义:
a) 它以 " super. " 方式出现时,则它表示 父亲的 含义。
b) 它以 " super() 或 super(参数) " 方式出现时,则它表示 父类的默认构造器或带相应参数的构造器。
提示:
super.方法 ;它往往在子类中重写方法时使用。
super() 和 super(参数); 它往往在子类的构造器中使用;且要求是第一行。
注意: super不能在静态方法中使用。
Demo
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">public classExtendsTest {
public static void main(String[] args) {
Father f1 = new Father();
int a = (int)(9899 * Math.random());
int b = (int)(9899 * Math.random());
System.out.println("f1, 你能帮我做一道算术题吗?");
System.out.println("好的,把数据给就可以。");
System.out.println("答案如下:");
int re = f1.add(a, b);
System.out.println( re );
Son s1 = new Son("张三");
System.out.println("\nf1的儿子: " + s1.getName() + ",完成的算术题如下:");
System.out.println("答案: " );
re = s1.add(a, b);
System.out.println( re );
Son s1 = new Son();
}
}
class Father {
public Father() {
}
public Father(int xx){
int tt = xx;
}
public int add( int x, int y ){
return x + y;
}
}
class Son extendsFather {
private String name ;
public Son() {
super();//自动的,是隐藏的.
}
public Son( String name) { //若此处,子类有多个继承自父类的属性,例如:可以写成:super(name,sex,age...),下面则是this.特有属性。
super();
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
//方法的重写:
public int add(int x, int y) {
System.out.print( x + " + "+ y + " = ");
return super.add(x, y); //借助父类的被重写的方法来完成业务。
}
}</span></span></span>
业务思想
特殊关键字super的用法,和this基本相同,所以也正应了那句话:“知识很多都是相通的,且学习是一个重复的过程”,就是在不断地重复学习中,不断的提升自己,相信自己,给自己更多锻炼的机会,一定可以做的很好的!