วัตถุที่เปลี่ยนรูป: subclass สร้างวัตถุและกำหนดการอ้างอิงวัตถุนี้ให้กับวัตถุของคลาสพาเรนต์
รูปแบบไวยากรณ์: พ่อ F = ลูกชายคนใหม่ ();
หมายเหตุ:
ตัวอย่างรหัส:
คลาสสาธารณะ shangz {// ระดับพรีเมี่ยม int a = 1; int b = 2; void cal () {// วิธีการของคลาสพรีเมี่ยมของตัวเอง system.out.println (a*b);} โมฆะคงที่สาธารณะ (สตริง [] args) {shangz s = New Shanghai demo (); s.cal (); // บนวัตถุการแปลงเรียกใช้วิธีย่อย s.err (); // วัตถุการแปลงสูญเสียแอตทริบิวต์ของคลาสย่อย}} คลาส shangzdemo ขยาย Shanghai {// subclass สืบทอดคลาสแม่เป็นโมฆะ cal () {// subclass rewrites วิธีการของชั้นเรียนของผู้ปกครองวัตถุการแปลงถัดไป: วัตถุที่อ้างอิงโดยคลาสพาเรนต์จะถูกแปลงเป็นประเภทของคลาสย่อย (การแปลงประเภทการหล่อ)
รูปแบบไวยากรณ์:
พ่อ f = ลูกชายคนใหม่ ();
ลูกชาย s = (พ่อ) f;
ข้อผิดพลาดไวยากรณ์: (ไม่มีรายงานข้อผิดพลาดสำหรับการรวบรวมไม่มีรายงานข้อผิดพลาดสำหรับการดำเนินการ)
พ่อ f = พ่อใหม่ ();
ลูกชาย s = ลูกชาย (f);
หมายเหตุ:
ตัวอย่างรหัส:
ชั้นเรียนสาธารณะ Shanghai {// ระดับพรีเมี่ยม int a = 1; int b = 2; void cal () {// วิธีการของคลาสพรีเมี่ยมของตัวเอง system.out.println (a*b);} โมฆะคงที่สาธารณะ (สตริง [] args) {Shangz S = New Shanghaidemo (); // วิธีการของคลาสแม่ d.div () ถูกเรียกว่า; // วัตถุเรียกวิธี subclass shanghai serr = new Shanghai (); Shangzdemo derr = (Shangzdemo) serr; derr.cal (); // การรวบรวมไม่ได้รายงานและข้อยกเว้นการแปลงเกิดขึ้นเมื่อเรียกใช้}} คลาสการสาธิตเซี่ยงไฮ้ขยาย Shanghai {// subclass สืบทอดคลาสแม่ทำให้โมฆะ cal () {// subclass แทนที่ระบบวิธีการเรียนของตัวเองในที่สุด: การแปลงวัตถุถูกใช้บ่อยขึ้นในทั่วไป