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

java靜態多態性和動態多態性

楊曉強1年前6瀏覽0評論

Java是一種面向對象的編程語言,它支持兩種多態性:靜態多態性和動態多態性。

靜態多態性是指在編譯時根據參數的類型來決定調用哪個方法。

<code class="java">
public class StaticPolymorphism {
public static void main(String[] args) {
HelloWorld helloWorld = new HelloWorld();
helloWorld.sayHello("Alice");
helloWorld.sayHello("Bob", 30);
}
}
class HelloWorld {
public void sayHello(String name) {
System.out.println("Hello " + name);
}
public void sayHello(String name, int age) {
System.out.println("Hello " + name + ", you are " + age + " years old");
}
}

在上面的代碼中,HelloWorld類中有兩個名為sayHello的方法,一個接受一個String參數,另一個接受一個String參數和一個int參數。在main方法中,我們可以通過傳遞不同數量和類型的參數來調用這兩個方法。

動態多態性是指在運行時根據對象的實際類型來決定調用哪個方法。

<code class="java">
public class DynamicPolymorphism {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.makeSound();
animal2.makeSound();
}
}
class Animal {
public void makeSound() {
System.out.println("I am an animal");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Meow!");
}
}

在上面的代碼中,Animal類有一個名為makeSound的方法,而Dog和Cat類重寫了makeSound方法。在main方法中,我們實例化了一個Dog對象和一個Cat對象,并將它們賦值給一個類型為Animal的變量。然后調用它們的makeSound方法。由于實際類型是Dog和Cat,所以分別調用了它們的重寫方法。