封裝,繼承,多型

 當談到物件導向程式設計中的封裝、繼承和多型時,可以使用現實生活中的動物類別作為例子來解釋。


1. 封裝(Encapsulation):

封裝是指將資料(屬性)和方法(行為)封裝在一個物件中,只對外部提供必要的接口以便存取和使用。舉例來說,假設我們有一個動物類別,稱為Animal。Animal類別中包含屬性(例如名字、年齡)和方法(例如發出聲音)。這些屬性和方法被封裝在Animal物件中,只有通過公開的介面(例如方法)才能存取和操作。


public class Animal { private String name; private int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void makeSound() { // 實作聲音的方法 } }


2. 繼承(Inheritance):

繼承是指一個類別(稱為子類別)繼承另一個類別(稱為父類別)的屬性和方法。子類別可以繼承父類別的特性,同時可以添加新的屬性和方法,或者修改父類別的方法。舉例來說,我們可以建立一個Dog類別,它繼承Animal類別的屬性和方法,同時可以定義自己的特殊屬性(例如品種)和方法(例如尾巴搖動)。


public class Dog extends Animal { private String breed; public Dog(String name, int age, String breed) { super(name, age); this.breed = breed; } public void wagTail() { System.out.println(name + " is wagging its tail."); } @Override public void makeSound() { System.out.println(name + " says: Woof!"); } }


3. 多型(Polymorphism):

多型是指相同的方法名稱可以在不同的類別中具有不同的實現方式。這允許使用相同的介面來調用不同類別的方法,提供了更大的彈性。舉例來說,除了Dog類別,我們也可以建立一個Cat類別,它同樣繼承自Animal類別。雖然Dog和Cat都有make_sound方法,但它們的具體實現方式是不同的。


public class Cat extends Animal { public Cat(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println(name + " says: Meow!"); } }


現在,我們可以創建


不同的動物物件並調用它們的方法:


Animal dog = new Dog("Buddy", 3, "Labrador"); Animal cat = new Cat("Whiskers", 5); dog.makeSound(); // 輸出: Buddy says: Woof! cat.makeSound(); // 輸出: Whiskers says: Meow! ((Dog) dog).wagTail(); // 輸出: Buddy is wagging its tail.


這個例子展示了封裝、繼承和多型的概念在物件導向程式設計中的應用。封裝將屬性和方法封裝在物件中,繼承允許子類別繼承父類別的特性,並添加新的特性,而多型則使得不同的物件可以使用相同的介面來調用方法,但具體的實現方式可能不同。

0 Comments:

張貼留言