色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

JAVA面向對象繼承和多態例題

姚詩涵1年前7瀏覽0評論

面向對象編程(OOP)的三大特征之一是繼承。在JAVA中,繼承使用關鍵字"extends"實現。繼承提供了代碼重用和子類擴展的機會。例如,我們可以定義一個Animal類,然后定義一個Dog子類,這個Dog子類將繼承來自Animal類的屬性和方法。

//Animal類的定義
public class Animal {
protected String name;
protected int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public void makeSound() {
System.out.println("Animal is making sound.");
}
}
//Dog類的定義
public class Dog extends Animal {
public Dog(String name, int age) {
super(name, age);
}
//重寫繼承自Animal類的makeSound方法
@Override
public void makeSound() {
System.out.println("Dog is barking.");
}
}

而多態性(Polymorphism)是OOP的另一個關鍵特征,是指不同對象對同一消息做出不同的響應。在JAVA中,多態性可以通過方法重載(Overloading)和方法重寫(Overriding)來實現。

例如,在上面的例子中,我們可以定義一個接收Animal類對象的方法,然后調用這個方法,傳遞一個Animal對象或一個Dog對象來測試多態性。如果傳遞Animal對象,那么調用的是Animal類中的makeSound方法;如果傳遞Dog對象,則調用的是重寫后的Dog類中的makeSound方法。

public class AnimalTest {
public static void main(String[] args) {
Animal animal = new Animal("Animal", 1);
Dog dog = new Dog("Dog", 2);
animal.makeSound(); //輸出:Animal is making sound.
dog.makeSound(); //輸出:Dog is barking.
Animal animalDog = new Dog("AnimalDog", 3);
animalDog.makeSound(); //輸出:Dog is barking.
}
}

在上面的例子中,animalDog對象的類型是Animal,但它的實際類型是Dog,因為它是由Dog類實例化出來的。當調用animalDog對象的makeSound方法時,會調用Dog類中重寫后的makeSound方法。這就是多態性的體現。