강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của u18797016
u18797016

câu hỏi đã được viết

Java: Tìm hiểu các lớp và lập trình hướng đối tượng

13. Ngoại lệ truyền lớp

자식 클래스가 부모 클래스를 캐스팅 할 때,

Viết

·

567

0

안녕하세요!

강의 정말 잘 듣고 있습니다.

 

 

class PBoard {
    public void PBoard(){
        System.out.println("PBoard method");
    }
}
class CBoard extends PBoard{
    public void Cboard(){
        System.out.println("Cboard method");
    }
}


public class ClassCast {
    public static void main(String[] args) {
        PBoard sbd1 = new CBoard();
        System.out.println(sbd1.getClass().getName());
   
        CBoard sbd2 = (CBoard)sbd1;
        System.out.println(sbd1.getClass().getName());

        System.out.println("-------------");

    }
}

위의 예제와 같이 자식 객체를 생성하고 부모타입으로 타입 캐스팅 한 경우, System.out.println(sbd1.getClass().getName());

에서 부모 클래스가 나올 줄 알았는데, 자식 클래스가 나옵니다!

혹시 그 이유가, 참조변수는 부모 클래스형이지만, 메모리에는 자식클래스가 올라와 있기 떄문인가요?

자바에서 타입을 조회할 때 메모리를 조회하는지, 참조변수 형을 조회하는지 궁굼합니다..!

 

감사합니다.

 

 

객체지향oopjava

Câu trả lời

Câu hỏi này đang chờ câu trả lời
Hãy là người đầu tiên trả lời!
Hình ảnh hồ sơ của u18797016
u18797016

câu hỏi đã được viết

Đặt câu hỏi