내 코드인스턴스화이 자바 코드에서 어떤 일이 일어나고 어떻게
class Alpha
{
public void foo()
{
System.out.print("Alpha ");
}
}
class Beta extends Alpha
{
public void foo()
{
System.out.print("Beta ");
}
public static void main(String[]args)
{
Alpha a = new Beta();
Beta b = (Beta)a;
a.foo();
b.foo();
}
}
출력입니다 : -
Beta Beta
내가 자바에 새로운 오전과 내가 처음에 대해 건너 한 인스턴스의 종류 출력이
Alpha Beta
없는 이유 '는이'클래스 알파의 객체가 있다면 내가 할 수없는 나는 왜 시간과 그게 전부는 이해하기 Alpha의 메소드가 호출되는 이유는 무엇입니까?
도와주세요.
하지만 'b'가 인스턴스화 된 줄은 무엇을 의미합니까? –
메모리의 객체에 대한 참조라고 생각하십시오. 실제로 하나의 실제 객체를 만들었을뿐입니다.이 객체는'new'로 발생했습니다. 'Beta b = (Beta) a;'를 주면,'a '와 같은 것을 가리키는 새로운'Beta' 변수가 생깁니다. 모든 Object 변수는 실제로는 참조 일 뿐이므로 두 개의 다른 객체가 필요하면 명시 적으로해야합니다. – Carl
그래서이 경우 'b'는 'a'가 이미 존재할 때 실제로 사용하지 않습니다 ... 맞습니까? –