/*
//첫 예제 (앞에 내용 생략..? ㅋ 미쳐 못적음 ㅜㅜ)
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 |
댓글