- class Node2Main { 
-     public static void-  main (String[]-  args ) {
 
-         MyNode2 mn = new MyNode2(5); 
-         Node2 n = mn;            // A raw type - compiler throws an unchecked warning 
-         n.setData("Hello"); 
-         n.setData(1); 
-         Integer-  x  = (Integer)-  mn. data;    // Causes a ClassCastException to be thrown.
 
-     } 
- } 
-   
- class Node2 { 
-   
-   
-     public-  Node2 (Object-  data ) { this- . data =-  data ; }
 
-   
-     public void-  setData (Object-  data ) {
 
-         System- . out- . println("Node2.setData");
 
-         this.data = data; 
-     } 
- } 
-   
- class MyNode2 extends Node2 { 
-     public-  MyNode2 (Integer-  data ) { super(- data ); }
 
-   
-     public void-  setData (Integer-  data ) {
 
-         System- . out- . println("MyNode2.setData");
 
-         super.setData(data); 
-     } 
- } 
-   
				Y2xhc3MgTm9kZTJNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBNeU5vZGUyIG1uID0gbmV3IE15Tm9kZTIoNSk7CiAgICAgICAgTm9kZTIgbiA9IG1uOyAgICAgICAgICAgIC8vIEEgcmF3IHR5cGUgLSBjb21waWxlciB0aHJvd3MgYW4gdW5jaGVja2VkIHdhcm5pbmcKICAgICAgICBuLnNldERhdGEoIkhlbGxvIik7CiAgICAgICAgbi5zZXREYXRhKDEpOwogICAgICAgIEludGVnZXIgeCA9IChJbnRlZ2VyKSBtbi5kYXRhOyAgICAvLyBDYXVzZXMgYSBDbGFzc0Nhc3RFeGNlcHRpb24gdG8gYmUgdGhyb3duLgogICAgfQp9CgpjbGFzcyBOb2RlMiB7CgogICAgcHVibGljIE9iamVjdCBkYXRhOwoKICAgIHB1YmxpYyBOb2RlMihPYmplY3QgZGF0YSkgeyB0aGlzLmRhdGEgPSBkYXRhOyB9CgogICAgcHVibGljIHZvaWQgc2V0RGF0YShPYmplY3QgZGF0YSkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTm9kZTIuc2V0RGF0YSIpOwogICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CiAgICB9Cn0KCmNsYXNzIE15Tm9kZTIgZXh0ZW5kcyBOb2RlMiB7CiAgICBwdWJsaWMgTXlOb2RlMihJbnRlZ2VyIGRhdGEpIHsgc3VwZXIoZGF0YSk7IH0KCiAgICBwdWJsaWMgdm9pZCBzZXREYXRhKEludGVnZXIgZGF0YSkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTXlOb2RlMi5zZXREYXRhIik7CiAgICAgICAgc3VwZXIuc2V0RGF0YShkYXRhKTsKICAgIH0KfQo=