/*
//첫 예제 (앞에 내용 생략..? ㅋ 미쳐 못적음 ㅜㅜ)
public class Oop001 {
	public static void main(String[] args) {
		A kk;
		kk= new A();
		kk.sub();     //다형성
		kk= new B();
		kk.sub();     //다형성
	}
}
**/
class A {
	int aa = 1;
}
class B extends A {
	int bb = 2;
}
class C extends B {
	int cc = 3;
}
class Oop001 {
	public static void main(String[] args) {
		C objc = new C();
		System.out.println("objc객체의 객체속성변수 aa의 값은 " + objc.aa);
		System.out.println("objc객체의 객체속성변수 bb의 값은 " + objc.bb);
		System.out.println("objc객체의 객체속성변수 cc의 값은 " + objc.cc);
		B j = objc;  //자동 형변환
		System.out.println("objc객체의 객체속성변수 aa의 값은 " + j.aa);
		System.out.println("objc객체의 객체속성변수 bb의 값은 " + j.bb);
		//System.out.println("objc객체의 객체속성변수 cc의 값은 " + j.cc); 
//메모리 형식으로 잡혀있지만 범위를 벗어났다.
//메모리 형식으로 잡혀있지만 범위를 벗어났다.
		//System.out.println("objc객체의 객체속성변수 cc의 값은 " + (c)j.cc);  //X
		//System.out.println("objc객체의 객체속성변수 cc의 값은 " + ((c)j).cc);
		B jj =new B();
		System.out.println("objc객체의 객체속성변수 aa의 값은 " + jj.aa);
		////C c1=(C)jj;
		//C c1 = (C)jj; //강제 형변환 BUT 여기 예제로는 호출?은 안됨!
		//System.out.println("objc객체의 객체속성변수 aa의 값은 " + c1.aa);
		//System.out.println("objc객체의 객체속성변수 bb의 값은 " + c1.bb);
		//System.out.println("objc객체의 객체속성변수 cc의 값은 " + c1.cc); //에러
	}
}
//자기자신 =this 상위=super
//objc참조변수   
//				-> object참조변수 -> a class = "1" + 디폴트 생성자 (object참조변수)에 추가 = "a()"
//				-> b class = "2" + 디폴트 생성자 (object참조변수)에 추가  = "b()"
//				-> c class = "3" + 디폴트 생성자 (object참조변수)에 추가  = "c()"
//객체화 -> 객체의 주소값을   objc참조변수에 저장!
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
| ex12) java_oop (0) | 2012.02.21 | 
|---|---|
| ex11) java_oop (0) | 2012.02.21 | 
| java _20120220 (0) | 2012.02.20 | 
| ex9) java_oop (0) | 2012.02.16 | 
| ex8) java_oop (0) | 2012.02.16 | 
댓글