class Person{
//Field
public Object obj;
//Consturctor
Person(Object obj) {
this.obj=obj;
}
class Student{
//Field
public int grade;
//Constructor
Student(int grade){this.grade=grade;}
}
public class Java100_collection_Generic2 {
public static void main(String[] args) {
//[1] : 객체 생성
}
}
Person p1 = new Person(new Student(2));
System.out.println(p1.obj);
출력결과>
Student@2d363fb3
참조형을 변수에 저장하기 때문에 변수를 출력하면 주소값이 나온다.
//[1] : 객체 생성
Person p1 = new Person("안녕하세요~");
// System.out.println(p1.obj);
String str = (String)p1.obj;
System.out.println(str.length()); //6
Person p2 = new Person(new Student(1));
Student s1=(Student)p2.obj;
--> 형변환
Teacher s2 =(Teacher)p2.obj; //Err
이클립스로 실행하면 바로 오류나 경고나 나오지만 원래 이 코드는 컴파일 단계에서는 에러가
나지 않는 코드 이다.
컴파일 단계에서는 에러가 안나고. 실행하는 단계에서 ClassCast(형변환) 오류가 발생한다.
Exception in thread "main" java.lang.ClassCastException: class Student cannot be cast to class Teacher