CodeGym/หลักสูตร/จาวาคอร์/วิธีใช้คลาสนามธรรม

วิธีใช้คลาสนามธรรม

มีอยู่

"สวัสดี Amigo เมื่อวานคุณเรียนแบบนามธรรม ตอนนี้ได้เวลาเพิ่มพูนความรู้ของเราแล้ว ฉันต้องการสอนวิธีใช้คลาสนามธรรมอย่างถูกต้อง"

เป็นการยากที่จะหาการเปรียบเทียบในโลกแห่งความเป็นจริงสำหรับคลาสนามธรรม คลาสมักจะเป็นแบบจำลองของเอนทิตีบางอย่าง แต่คลาสนามธรรมมีเมธอดที่ยังไม่ได้ใช้งาน และอาจมีเมธอดที่นำไปใช้แล้ว นั่นหมายความว่าอย่างไร? เราสามารถหาความคล้ายคลึงใดสำหรับคลาสนามธรรมได้บ้าง มีเรื่องแบบนี้ในโลกแห่งความเป็นจริงด้วยเหรอ?

ที่จริงมี ลองนึกภาพแชสซีของรถที่เกือบจะเสร็จแล้วบนสายพาน ฉันสามารถติดตั้งได้ทั้งเครื่องยนต์ที่ปรับปรุงแล้วหรือเครื่องยนต์ที่มีประสิทธิภาพสูง ภายในเบาะหนังหรือเบาะผ้า ยังไม่ได้กำหนดการใช้งานเฉพาะของรถ ยิ่งไปกว่านั้น แชสซียังสามารถนำไปใช้งานเฉพาะต่างๆ ได้อีกมากมาย แต่ไม่มีใครต้องการรถในรูปแบบปัจจุบัน นี่เป็นคลาสนามธรรมแบบคลาสสิก : การสร้างอินสแตนซ์ของมันไม่สมเหตุสมผล ดังนั้นคุณจึงไม่สามารถสร้างมันได้ ชั้นเรียนเหมาะสมเพราะมีทายาทมากมายที่จะถูกสร้างขึ้นบนพื้นฐานของมัน

"นั่นง่ายพอ"

แต่อาจมีการเปรียบเทียบที่เป็นนามธรรมมากกว่านั้น เหมือนกับส่วนต่อประสานที่มีวิธีการนำไปใช้เล็กน้อย ตัวอย่างเช่น พิจารณาล่ามมืออาชีพ เรามี « ตัวแปลนามธรรม » โดยไม่ต้องระบุภาษาต้นทางและเป้าหมาย หรือพิจารณาผู้คุ้มกัน เราอาจรู้ว่าเขาเชี่ยวชาญศิลปะการต่อสู้และสามารถปกป้องลูกค้าของเขาได้ แต่ศิลปะการต่อสู้ใดและวิธีที่เขาจะปกป้องลูกค้าคือ "รายละเอียดการใช้งาน" ของผู้คุ้มกันเฉพาะแต่ละคน

ลองดูตัวอย่าง:

รหัสจาวา คำอธิบาย
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
คลาส BodyGuard กำหนดวิธีจัดการกับการโจมตี: ยิงหรือใช้ศิลปะการต่อสู้

อย่างไรก็ตาม ไม่มีการระบุศิลปะการป้องกันตัวที่เฉพาะเจาะจง แม้ว่าเราจะแน่ใจว่าทักษะนั้นมีอยู่จริง

เราสามารถสร้างบอดี้การ์ดได้หลายแบบ (โดยการสืบทอดคลาสนี้) พวกเขาทั้งหมดจะสามารถปกป้องลูกค้าและยิงผู้โจมตีได้

"คุณพูดถูก มันเหมือนกับส่วนต่อประสานที่มีวิธีการใช้งานไม่กี่อย่าง"

"ใช่ คลาสนามธรรมประเภทนี้มีอยู่ทั่วไปในคลาส Java SE มาตรฐาน"

3
งาน
จาวาคอร์,  ระดับบทเรียน
ล็อค
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. Turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ