ClassName objectName = new ClassName();
เช่น
Book b = new Book();
แต่มันมีปัญหาว่าหากคลาสมีการสืบทอดกันไปหลายๆ ชั้น แล้วเราต้องการแปลงชนิดให้ตรงกัน จะทำอย่างไร เพราะตอนสร้าง object อาจจะต้องทำการ new จากอีกคลาส
ลองมาดูแนวทางตัวอย่างกันก่อน กฏมีว่า ด้านขวาต้องเป็น ลูก ด้านซ้ายต้องเป็น แม่ จึงจะทำการ new object ได้
เช่นโค้ดนี้
package myPackage; public class CastingExample { public static void main(String[] args) { A a = new A(); B b = new B(); B c = new A(); // error A d = new B(); } } class A { } class B extends A { }
ทีนี้ปัญหาก็คือหากเราต้องการบังคับให้แปลงชนิด เพื่อให้ตรงกันให้ได้จะทำอย่างไร ในภาษา java ใช้เครื่องหมาย () ครอบ และข้างในใส่ชื่อ class เช่น (A) new B(); เป็นต้น
ตัวอย่างโค้ด
package myPackage; public class CastingExample { public static void main(String[] args) { A a = new A(); B b = new B(); A d = new B(); A c = (A) new B(); System.out.println("b = " + b); } } class A { } class B extends A { }
ผลการทำงาน
b = myPackage.B@15db9742
ไม่มีความคิดเห็น:
แสดงความคิดเห็น