IT


A a = new A();
B b = new B();
a = b;
-------------------
A a = new B(); 와 같다.

● 객체참조변수와 객체와의 관계

  1) 부모클래스(A)로 객체참조변수(a)를 생성하여 부모클래스의 생성자로 만들어진 객체의
     주소 저장 => 가능
     : 참조변수 => 부모클래스의 메소드만 사용 가능
     : A a=new A();

  2) 자식클래스(B)로 객체참조변수(b)를 생성하여 자식클래스의 생성자로 만들어진 객체의
     주소 저장 => 가능
     : 참조변수 => 부모클래스의 메소드와 자식클래스의 메소드 사용 가능
     : B b=new B();

  3) 자식클래스(B)로 객체참조변수(b)를 생성하여 부모클래스(A)의 생성자로 만들어진 객체의
     주소 저장 => 불가능(Error)
     : B b=new A();   // Error


  4) 부모클래스(A)로 객체참조변수(a)를 생성하여 자식클래스(B)의 생성자로 만들어진 객체(b)의
     주소 저장 => 가능
     : 참조변수 => 부모클래스의 메소드 사용 가능
                   객체형변환을 사용하면 자식클래스의 메소드(c) 사용 가능
     : A a=new B();
     : ((B)a).c();

package day08;
class A{
 int var = 10;
 public void method(){
  System.out.println("A"+var);
 }
}
class B extends A{
 int var = 20;
 public void method(){
  System.out.println("B"+var);
 }
}

public class test {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  A a = new B();
  
  System.out.println(a.var);
  System.out.println(((B)a).var);   //강제캐스팅을 사용하여 자식클래스의 멤버변수를 사용할수 있다.
  a.method(); 
 }
}


'소프트웨어 > Java' 카테고리의 다른 글

String 클래스 객체 생성  (0) 2011.05.25
instanceof 연산자  (0) 2011.05.25
== 와 equals  (0) 2011.05.19
Java DOC 생성  (0) 2011.05.18
이클립스 단축키  (0) 2011.05.17
Posted by sinpk