多形まとめ
4083 ワード
多形実質:AシステムはBシステムに対して甲というサービスを要求していますが、甲のようなサービスはBにおいて様々な実施形態があり、具体的な詳細はBシステムに実装されています。Aシステムにとっては見られないものです。以下の規則は親の参照変数に適用されます。
//
public class base{
String BaseStr="base";
static String staticBaseStr="staticBase";
public void method1(){
System.out.println("Base's method1")
}
public static void method2(){
System.out.println("Base's static method2")
}
}
//
public class Sub extends base{
String SubStr="sub";
static String staticSubStr="staticSub";
public void method1(){
System.out.println("Sub's method1")
}
public static void method2(){
System.out.println("Sub's static method2")
}
}
public class test{
public void main(arg s){
Base base =new Sub();//
base.BaseStr="new base";//
base.SubStr="new sub";// 1, 3 Base SubStr;
((Sub)base).SubStr="new sub";// , Sub
base.staticBaseStr="123";//
base.staticSubStr="123";// 1, 3 Base staticSubStr;
((Sub)base).staticSubStr="123"// ,
base.method1();// 2 Sub's method1
base.method2();// 3 Base's static method2
}
}
1、参照型の変数に対して、javaコンパイラはその宣言の種類によって処理します。2、参照型の変数が実行されている場合、java仮想マシンは実際に参照されたオブジェクトに従って3を処理します。実行中の環境では、参照対象の方法と属性に変数を参照してアクセスするとき、java仮想マシンはバインディング機構を採用します。//· , ;
//· ( ) ,
//· ( ) ( )
//· ( ) , ,