小白的學習筆記1:介面和多型,以及例子

Yuri-L_210162701054發表於2024-08-16

2024.8.2
1.介面
介面即為一個抽象的方法,此方法定義了很多種行為,可供類們去實現,而避免了使用多種重複的else……if,while等即時運算。
抽象,即為更上層的概念。比如“男人”的抽象為“人”,“人”的抽象為動物,這就是一個統領的節點。
以下為示例
public class Demo1 {
public interface animal{//定義一個介面方法
public void eat();//定義兩個公共方法
public void bellow();//等待繼承此介面的類來實現這兩個方法
public static void al(){
System.out.println("此項為介面的定義!");
}
}
public class bear implements animal{
public void eat(){//實現animal中的eat方法
System.out.println("熊正在乾飯!");
}
public void bellow(){//實現animal中的bellow方法
System.out.println("熊正在吼叫!");
}
public String pack(){//在類中額外建立一個方法
return "好多動物!";
}
}

}
從此可以看出介面既是可以被下層物件可使用的另一種“繼承”。

2.多型

一、定義

  • 多型(Polymorphism)字面意思為“多種形態”,在程式設計中,它指的是相同的操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。
  • 簡單來說,多型就是允許將子類型別的指標賦值給父類型別的指標(向上轉型),然後透過這個父類型別的指標呼叫實際子類物件的成員函式,此時發生的是動態繫結(即執行時繫結),根據物件的實際型別來呼叫相應的函式。
    class Animal {
    // 父類中的方法
    public void makeSound() {
    System.out.println("某種聲音");
    }
    }

// Dog類繼承自Animal類
class Dog extends Animal {
// 重寫父類中的方法
@Override
public void makeSound() {
System.out.println("汪汪");
}
}

// Cat類繼承自Animal類
class Cat extends Animal {
// 重寫父類中的方法
@Override
public void makeSound() {
System.out.println("喵喵");
}
}

// 測試多型性
public class PolymorphismTest {
public static void main(String[] args) {
// 父類引用指向子類物件
Animal myDog = new Dog();
Animal myCat = new Cat();

    // 呼叫同一個方法,但行為取決於物件的實際型別  
    myDog.makeSound(); // 輸出:汪汪  
    myCat.makeSound(); // 輸出:喵喵  

    // 列表儲存不同型別的物件  
    Animal[] animals = new Animal[2];  
    animals[0] = new Dog();  
    animals[1] = new Cat();  

    for (Animal animal : animals) {  
        animal.makeSound(); // 執行時根據物件的實際型別呼叫對應的方法  
    }  
    // 輸出:  
    // 汪汪  
    // 喵喵  
}  

}
此項結果中,makesound被貓和狗的叫聲方法重寫,從而在外是相同的呼叫方法,實際上卻是沒有不同的實現方法。
這就是多型的一個應用場景。

相關文章