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 |