ประเด็นสำคัญหลายประการที่คุณควรให้ความสนใจเมื่อใช้คลาสนามธรรม:
คลาสที่มีวิธีการนามธรรมอย่างน้อยหนึ่งวิธีจะต้องประกาศเป็นคลาสนามธรรม
การประกาศคลาสเป็นคลาสนามธรรมไม่จำเป็นต้องมีวิธีการนามธรรม
เป็นที่เชื่อกันว่าวิธีการเฉพาะไม่ควรรวมอยู่ในคลาสนามธรรม
คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้นั่นคือวัตถุของคลาสนี้ไม่สามารถสร้างได้
รหัสตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
นำเข้า Java.util.*;
-
* โปรแกรมนี้แสดงให้เห็นถึงคลาสนามธรรม
* @version 1.01 2004-02-21
* @author Cay Horstmann
-
บุคคลชั้นเรียนสาธารณะ
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args)
-
บุคคล [] คน = คนใหม่ [2];
// เติมอาร์เรย์ผู้คนด้วยวัตถุนักเรียนและพนักงาน
คน [0] = พนักงานใหม่ ("แฮร์รี่แฮ็กเกอร์", 50000, 1989, 10, 1);
ผู้คน [1] = นักเรียนใหม่ ("มาเรียมอร์ริส", "วิทยาศาสตร์คอมพิวเตอร์");
// พิมพ์ชื่อและคำอธิบายของวัตถุทั้งหมด
สำหรับ (บุคคล P: คน)
System.out.println (P.GetName () + "," + P.GetDescription ());
-
-
บุคคลชั้นเรียนนามธรรม
-
บุคคลสาธารณะ (สตริง n)
-
ชื่อ = n;
-
สตริงนามธรรมสาธารณะ getDescription ();
สตริงสาธารณะ getName ()
-
ชื่อคืน;
-
ชื่อสตริงส่วนตัว;
-
พนักงานชั้นเรียนขยายบุคคล
-
พนักงานสาธารณะ (String N, Double S, Int Year, Int Month, Int Day)
-
super (n);
เงินเดือน = S;
ปฏิทิน Gregoriancalendar = New Gregoriancalendar (ปี, เดือน - 1, วัน);
hireday = calendar.getTime ();
-
สาธารณะสองครั้ง ()
-
เงินเดือนคืน;
-
วันที่สาธารณะ Gethireday ()
-
กลับมาจ้างงาน;
-
สตริงสาธารณะ getDescription ()
-
return string.format ("พนักงานที่มีเงินเดือน $%. 2f", เงินเดือน);
-
Public Void Raisesalary (สองเท่า)
-
เพิ่มสองครั้ง = เงินเดือน * bypercent / 100;
เงินเดือน += เพิ่ม;
-
เงินเดือนสองเท่าส่วนตัว
วันที่จ้างส่วนตัว
-
นักเรียนชั้นเรียนขยายบุคคล
-
-
* @param n ชื่อนักเรียน
* @param m วิชาเอกของนักเรียน
-
นักศึกษาสาธารณะ (String N, String M)
-
// ผ่าน n ไปยังตัวสร้างซุปเปอร์คลาส
super (n);
Major = M;
-
สตริงสาธารณะ getDescription ()
-
กลับ "วิชาเอกนักเรียนใน" + เมเจอร์;
-
สตริงส่วนตัวที่สำคัญ;
-
ในบล็อกรหัส:
การคัดลอกรหัสมีดังนี้:
สำหรับ (บุคคล P: คน)
System.out.println (P.GetName () + "," + P.GetDescription ());
ใน P.GetDescription () วิธีการที่จะอ้างถึงวัตถุ subclass ของคลาสย่อยเฉพาะ
GetDescription () ในคลาสบุคคลไม่สามารถละเว้นได้เนื่องจากคอมไพเลอร์อนุญาตให้ใช้วิธีการโทรที่ประกาศในชั้นเรียนเท่านั้น