찬이욥
212
2020-04-07 13:49:15 작성 2020-04-07 13:50:59 수정됨
4
1733

자바의 클래스 타입의 정확한 의미가 뭔가요???


일반적으로 자료형들이라 하면 int,double,float,char,string 등등이 있는데

int x; 를 선언했을경우, x는 정수형의 자료값이 저장될수있는 변수라고 말할수 있는 걸로 알고있습니다.

그러면 SuperObject  라는 클래스가 있고 그에게 상속받는 SubObject  클래스가 있을때

SuperObject a = new SubObject(); 의 객체를 생성할 경우 ,

객체 a의 의미를 위의 x 변수 처럼 말로 풀어서 정의하려면 어떻게 설명할수 있나요??

 클래스타입이라는 말의 정확한 의미가 이해가 안되서 질문 드립니다.

0
  • 답변 4

  • siva6
    5k
    2020-04-07 14:00:12

    타입 변수;

    이렇게 선언하면요.
    변수는 특정 메모리 주소를 나타내는 이름표입니다. 여기는 정말 주소만 있습니다.
    그 주소부터 적혀있는 정보를 어떻게 해석하는냐가 타입 입니다.

    객체도 동일합니다. 
    SuperObject 타입이라고 했으니, SuperObject로 해석합니다.
    하지만, 실제로 생성된 객체는 SubObject겠죠.
    SubObject는 상속을 통해 SuperObject로 해석이 가능하게 규제됩니다.

  • 찬이욥
    212
    2020-04-07 15:36:19 작성 2020-04-07 15:37:33 수정됨

    siva6  SuperObject 타입로 선언했으니 객체에 있는 정보를 SuperObject로 해석한다는게 무슨의미인가요????

  • siva6
    5k
    2020-04-07 15:50:28

    만약 SuperObject의 메소드가 name() 만 있고,
    SubObject에서 firstName()과 lastName()을 만들었어도....

    SuperObject a = new SubObject();
    라고 하면 a는 해당 객체를 SuperObject 타입으로 알고,  name()만 있는 것으로 알게 되겠죠.

  • 찬이욥
    212
    2020-04-07 16:32:11

    siva6 네 이해했습니다! 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.