บทช่วยสอนJava

Java HOME Java Intro Java เริ่มต้น Java Syntax ความคิดเห็นของ Java ตัวแปร Java Java Data Types การหล่อแบบจาวา ตัวดำเนินการ Java Java Strings Java Math Java Booleans Java If...Else Java Switch Java ในขณะที่ลูป Java สำหรับลูป Java Break/ต่อ Java Arrays

เมธอดของจาวา

เมธอดของจาวา พารามิเตอร์เมธอด Java วิธี Java โอเวอร์โหลด ขอบเขต Java Java Recursion

คลาส Java

Java OOP Java Classes/Objects คุณสมบัติคลาส Java วิธีการคลาส Java Java Constructors Java Modifiers การห่อหุ้มด้วยจาวา แพ็คเกจ Java / API มรดกจาวา Java Polymorphism Java Inner Classes Java Abstraction อินเทอร์เฟซ Java Java Enums อินพุตผู้ใช้ Java Java วันที่ Java ArrayList Java LinkedList Java HashMap Java HashSet Java Iterator คลาส Java Wrapper ข้อยกเว้น Java Java RegEx Java Threads จาวา แลมบ์ดา

การจัดการไฟล์ Java

ไฟล์ Java Java สร้าง/เขียนไฟล์ Java อ่านไฟล์ Java ลบไฟล์

Java ฮาวทู

เพิ่มสองตัวเลข

Java Reference

คีย์เวิร์ด Java เมธอด Java String Java Math Methods

ตัวอย่าง Java

ตัวอย่าง Java Java Compiler แบบฝึกหัด Java Java Quiz ใบรับรอง Java


Java Abstraction


คลาสนามธรรมและวิธีการ

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

คีย์เวิร์ด คือabstractnon-access modifier ใช้สำหรับคลาสและเมธอด:

  • คลาสนามธรรม:เป็นคลาสที่ถูกจำกัดซึ่งไม่สามารถใช้สร้างอ็อบเจ็กต์ได้ (หากต้องการเข้าถึง คลาสนั้นต้องสืบทอดมาจากคลาสอื่น)

  • วิธีนามธรรม:ใช้ได้เฉพาะในคลาสนามธรรม และไม่มีเนื้อหา ร่างกายมีให้โดยคลาสย่อย (สืบทอดมาจาก)

คลาสนามธรรมสามารถมีได้ทั้งวิธีนามธรรมและปกติ:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

จากตัวอย่างข้างต้น ไม่สามารถสร้างวัตถุของคลาส Animal ได้:

Animal myObj = new Animal(); // will generate an error

ในการเข้าถึงคลาสนามธรรม จะต้องสืบทอดมาจากคลาสอื่น มาแปลงคลาส Animal ที่เราใช้ใน บท Polymorphismเป็นคลาสนามธรรมกัน:

จำจากบท Inheritanceที่เราใช้extendsคีย์เวิร์ดเพื่อสืบทอดจากคลาส

ตัวอย่าง

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

ทำไมและเมื่อใดจึงควรใช้คลาสนามธรรมและวิธีการ

เพื่อให้ได้ความปลอดภัย - ซ่อนรายละเอียดบางอย่างและแสดงเฉพาะรายละเอียดที่สำคัญของวัตถุ

หมายเหตุ:คุณสามารถบรรลุสิ่งที่เป็นนามธรรมได้ด้วยInterfacesซึ่งคุณจะได้เรียนรู้เพิ่มเติมในบทต่อไป