java静态多态性和动态多态性


Java是一种面向对象的编程语言,它支持两种多态性:静态多态性和动态多态性。

静态多态性是指在编译时根据参数的类型来决定调用哪个方法。

<code >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 >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,所以分别调用了它们的重写方法。


上一篇:javascript中的焦点

下一篇:javascript中缩略图


Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器