$B%/%i%97?JQ?t$N%-%c%9%H(B

Revised: Jan./4th/2002: Since: Dec./30th/2001

$BA0@a(B$B$G8+$?DL$j!"%5%V%/%i%9$O%9!<%Q!<%/%i%9$r4^$s$G$$$k$N$G!"%5%V%/%i%97?$N%*%V%8%'%/%H$r;2>H$9$kJQ?t$O%9!<%Q!<%/%i%97?$NJQ?t$KBeF~$G$-$^$9!#$D$^$j!"%5%V%/%i%9$N%$%s%9%?%s%9$X$N;2>H$,!"%9!<%Q!<%/%i%97?JQ?t$K%3%T!<$G$-$k$H8@$&$3$H$G$9!#(B

$B$=$N5U$K!"%9!<%Q!<%/%i%9$N%*%V%8%'%/%H$r;2>H$9$kJQ?t$O!"%5%V%/%i%97?$NJQ?t$KBeF~$G$-$k$H$O8B$j$^$;$s!#=PMh$k>l9g$G$"$C$F$b!"L@<(E*$J7?JQ49$D$^$j(B$B%-%c%9%H(B$B$,I,MW$G$9!#(B

  SuperClass
     A  |                      O.K.: SubClass ------> SuperClass
O.K. |  | NO or Cast
     |  |                NO or Cast: SuperClass ----> SubClass
     |  V
   SubClass

$B7Q>54X78$K8B$i$:!"DL>o$O(B$B0[$J$k;2>H7?JQ?t4V$NBeF~$K$O%-%c%9%H$,I,MW(B$B$G$9!#4pK\%G!<%?7?$NJQ?t$N(B$B%-%c%9%H(B$B$HF1$8$G$9!#(B

$B%5%s%W%k(B

  1. $B%5%V%/%i%9$N%$%s%9%?%s%9$r:n$j!"(B
  2. $B%5%V%/%i%97?JQ?t(B objKo $B$K;2>H$rBeF~$7$^$9!#(B
  3. $B$3$N%5%V%/%i%97?JQ?t$r%9!<%Q!<%/%i%97?JQ?t(B objOya $B$KBeF~$7$F$$$^$9(B
  4. $B$3$N%9!<%Q!<%/%i%97?JQ?t$r%-%c%9%H$7$F!"JL$N%5%V%/%i%97?JQ?t(B objOyaToKo $B$KBeF~$7D>$7$F$$$^$9!#(B

objOya $B$,;2>H$7$F$$$kobjOya $B$+$i;H$($J$$$@$1$G!"%5%V%/%i%9$N%a%=%C%I$b;}$C$F$$$^$9!#%-%c%9%H$9$k$3$H$G!"%5%V%/%i%9$GDj5A$5$l$?%a%=%C%I$b;H$($k$h$&$K$J$k$O$:$G$9!#(B

class TestCastObj {
	public static void main(String[] args) {
		//$B%$%s%9%?%s%92=(B
		Ko objKo=new Ko();
		//$B;2>H$NBeF~(B
		Oya objOya=objKo;
		objOya.getMsgOya();
//		objOya.getMsgKo();
		//Ko$B%/%i%97?JQ?tDj5A(B
		Ko objOyaToKo;
		//$B%-%c%9%H(B
		objOyaToKo=(Ko)objOya;
		objOyaToKo.getMsgKo();
	}
}
class Oya {
	void getMsgOya() {
		System.out.println("$B?F%/%i%9!#(B");
	}
}
class Ko extends Oya {
	void getMsgKo() {
		System.out.println("$B;R%/%i%9!#(B");
	}
}

$B;2>H$7$F$$$kobjOya.getMsgKo() $B$O;H$($^$;$s!#$7$+$7!"8+$($F$$$J$$$@$1$G!";2>H@h$NgetMasKo() $B$b;}$C$F$$$k$N$G!"%-%c%9%H$K$h$jJQ?t$N7?$rJQ$($k$@$1$GMxMQ$G$-$k$h$&$K$J$j$^$9!#(B

C:\Java>javac TestCastObj.java
C:\Java>java TestCastObj
$B?F%/%i%9!#(B
$B;R%/%i%9!#(B

$B%5%s%W%k(B

Object $B%/%i%9$,A4$F$N%/%i%9$N%9!<%Q!<%/%i%9$J$N$G!"$3$N7?$NJQ?t$OG$0U$N%/%i%97?$NJQ?t$rBeF~$G$-$^$9!#$3$N@-

ObjTest.java:

class ObjStore {
	private Object obj;
	public void setObj(Object arg) {
		obj = arg;
	}
	public Object getObj() {
		return obj;
	}
}
class ObjTest {
	public static void main(String[] args) {
		//$B%F%9%HMQ$N%*%V%8%'%/%H(B
		String str = new String("Hello!");
		//ObjStore$B%/%i%9$N%*%V%8%'%/%H(B
		ObjStore perm = new ObjStore();
		//$B;2>H7?JQ?t$N%a%=%C%I8F$S=P$7BeF~(B
		perm.setObj(str);
		//$B%a%=%C%I$NLa$jCM$N%-%c%9%H(B
		String str2 = (String)perm.getObj();
		System.out.println(str);
		System.out.println(str2);
	}
}

setObj() $B%a%=%C%I$O!"0z?t$N7?$,(B Object $B7?$KDj5A$5$l$F$$$^$9$N$G!"G$0U$N%/%i%97?$NJQ?t$,0z?t$H$7$F2DG=$G$9!#C"$7!"Object $B7?$K<+F07?JQ49$5$l$^$9!#(B

Object $B7?$K<+F07?JQ49$5$l$?%*%V%8%'%/%H$r(B getObj() $B$G%2%C%H$7$^$9$,!"La$jCM$O$d$O$j(B Object $B7?$G$9!#$7$+$7!"$3$N%*%V%8%'%/%H$O<+J,$G%;%C%H$7$?$b$N$G$"$j!"7?$,(B String $B$G$"$k$HJ,$+$C$F$$$k$N$G!"%-%c%9%H$7$F(B String $B7?$KLa$7$F$+$i

C:\Java>javac ObjTest.java
C:\Java>java ObjTest
Hello!
Hello!
C:\Java>

$B$3$N%5%s%W%k$O!"I8=`%/%i%9%i%$%V%i%j$G$"$k(B Vector $B%/%i%9(B$B$r4JC1$K$7$?$b$N$K2a$.$^$;$s!#$3$N%/%i%9$O2DJQD9$NG[Ns$r:n$j$^$9$,!"$=$NMWAG$O(B Object $B7?$GDj5A$5$l$F$$$^$9!#$I$s$J%/%i%97?$N;2>H$G$bBeF~$G$-$^$9$,!"Object $B7?$GLa$C$F$/$k$N$G!"(B Vector $B%/%i%97?%*%V%8%'%/%H$NMWAG$r%*%V%8%'%/%H$H$7$FMxMQ$9$k$H$-$K$O!"E,@Z$K%-%c%9%H$9$kI,MW$,$"$j$^$9!#(B



Copyright © 2001 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送