4.12 superキーワード
サブクラスの中で考えたら
布団類に隠されたメンバー変数や方法を使ってキーワードスーパーを使うことができます.
1.キーワードsuperを使って親の構造方法を呼び出します. サブクラスは、親の構造方法を使用するには、キーワードsuperを使用して表示する必要があります.
サブクラスの構造方法でなければいけません.最初のステートメントです.
例:
親類のパラメータなしの構造方法を呼び出します.
もし父方
1つ以上の構成方法を定義し、
では、Javaはデフォルトの構造方法(パラメータなしの構造方法)を提供しないので、親類に複数の構造方法が定義されると、
パラメータなしの構造方法を含むべきである.
サブクラスでsuperを省略するとエラーが発生します.
2.キーワードスーパーを使って、隠されたメンバー変数と方法を操作します. たとえば:
布団類に隠されたメンバー変数や方法を使ってキーワードスーパーを使うことができます.
1.キーワードsuperを使って親の構造方法を呼び出します. サブクラスは、親の構造方法を使用するには、キーワードsuperを使用して表示する必要があります.
サブクラスの構造方法でなければいけません.最初のステートメントです.
例:
class Student{
int number;
String name;
Student(){ // , super ,
}
Student(int number,String name){
this.number=number;
this.name=name;
System.out.println("I am "+name+" my number is "+number);
}
}
class UStudent extends Student{
boolean marry;
UStudent(int number,String name,boolean b){
super(number,name);//super
marry=b;
System.out.println(" ="+marry);
}
}
public class SuperExample{
public static void main(String args[]){
UStudent zhang=new UStudent(203," ",false);
}
}
/*
I am my number is 203
=false
*/
注:サブクラスの構造方法において、親クラスのある構造方法をキーワードsuperで起動しない場合、デフォルトでは super();
文、つまり親類のパラメータなしの構造方法を呼び出します.
もし父方
1つ以上の構成方法を定義し、
では、Javaはデフォルトの構造方法(パラメータなしの構造方法)を提供しないので、親類に複数の構造方法が定義されると、
パラメータなしの構造方法を含むべきである.
サブクラスでsuperを省略するとエラーが発生します.
2.キーワードスーパーを使って、隠されたメンバー変数と方法を操作します. たとえば:
super.x、super.play()
例:class Sum{
int n;
float f(){
float sum=0;
for(int i=0;i<=n;i++)
sum+=i;
return sum;
}
}
class Average extends Sum{
int n;
float f(){
float c;
super.n=n;
c=super.f();
return c/n;
}
float g(){
float c;
c=super.f();
return c/2;
}
}
public class SuperExample2{
public static void main(String args[]){
Average aver = new Average();
aver.n=100;
float result1=aver.f();// , result2=0.0
float result2=aver.g();
System.out.println("result1="+result1);
System.out.println("result2="+result2);
}
}
/*
result1=50.5
result2=2525.0
*/