บทช่วยสอน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 Polymorphism


Java Polymorphism

Polymorphism หมายถึง "หลายรูปแบบ" และเกิดขึ้นเมื่อเรามีหลายชั้นเรียนที่เกี่ยวข้องกันโดยการสืบทอด

เช่นเดียวกับที่เราระบุไว้ในบทที่แล้ว การ สืบทอดทำให้เราสืบทอดแอตทริบิวต์และเมธอดจากคลาสอื่น ความ หลากหลาย ใช้วิธีการเหล่านั้นเพื่อทำงานที่แตกต่างกัน ซึ่งช่วยให้เราดำเนินการสิ่งเดียวได้หลายวิธี

ตัวอย่างเช่น ลองนึกถึง superclass ที่เรียกAnimalว่าซึ่งมี method ที่เรียกว่าanimalSound(). คลาสย่อยของสัตว์อาจเป็นหมู แมว สุนัข นก และพวกมันยังมีการใช้เสียงสัตว์ในตัวเอง (หมู oinks และ cat meows ฯลฯ):

ตัวอย่าง

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

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

ตอนนี้เราสามารถสร้างPigและ DogวัตถุและเรียกanimalSound()วิธีการทั้งสองวิธี:

ตัวอย่าง

class Animal {
  public void animalSound() {
    System.out.println("The animal makes a sound");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("The dog says: bow wow");
  }
}

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

ทำไมและเมื่อใดจึงควรใช้ "การสืบทอด" และ "ความหลากหลาย"?

- มีประโยชน์สำหรับการนำโค้ดกลับมาใช้ใหม่: ใช้แอตทริบิวต์และวิธีการของคลาสที่มีอยู่ซ้ำเมื่อคุณสร้างคลาสใหม่