溫馨提示×

Constructor Java的繼承與多態如何實現

小樊
100
2024-11-30 19:49:52
欄目: 編程語言

在Java中,構造函數并不直接支持繼承和多態。但是,我們可以通過一些方法來實現類似的功能。

  1. 繼承:

在Java中,子類可以繼承父類的屬性和方法。當創建一個子類對象時,父類的構造函數會被自動調用。以下是一個簡單的例子:

class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    String breed;

    public Dog(String name, String breed) {
        super(name); // 調用父類的構造函數
        this.breed = breed;
    }
}

在這個例子中,Dog類繼承了Animal類,并通過super(name)調用了Animal類的構造函數。

  1. 多態:

多態是指允許不同類的對象對同一消息作出響應。在Java中,多態可以通過接口和抽象類實現。以下是一個簡單的例子:

interface Animal {
    void makeSound();
}

class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof!");
    }
}

class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog(); // 多態:將Dog對象賦值給Animal類型的變量
        myAnimal.makeSound(); // 輸出 "Woof!"

        myAnimal = new Cat(); // 多態:將Cat對象賦值給Animal類型的變量
        myAnimal.makeSound(); // 輸出 "Meow!"
    }
}

在這個例子中,我們定義了一個Animal接口,它有一個makeSound()方法。DogCat類都實現了這個接口,并分別覆蓋了makeSound()方法。在main方法中,我們創建了一個Animal類型的變量myAnimal,并將其分別指向DogCat對象。當我們調用myAnimal.makeSound()時,會根據實際的對象類型輸出不同的結果,這就是多態的體現。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女