首先我们先来了解一下什么是Java多态性。Java的多态性是指同一个方法对于不同的对象会产生不同的行为。多态性提高了代码的可重用性和扩展性,是面向对象编程中非常重要的一个特性。
在Java中,多态性主要表现在两个方面:
-
重载多态性:同一个类中可能存在多个名称相同但参数列表不同的方法,Java通过方法的参数数量和类型来区分它们。
-
运行时多态性:父类类型的变量可以引用子类类型的对象,编译时只看父类,运行时则执行子类对象的方法。
我们来看两个具体的示例来说明Java多态性的应用:
示例一:
public class Animal{
public void move(){
System.out.println("动物在移动");
}
}
public class Dog extends Animal {
public void move(){
System.out.println("狗在跑");
}
}
public class Cat extends Animal {
public void move(){
System.out.println("猫在爬");
}
}
public class Test{
public static void main(String args[]){
Animal animal = new Animal(); // Animal 对象
Animal dog = new Dog(); // Dog 对象
Animal cat = new Cat(); // Cat 对象
animal.move(); // 执行 Animal 类的方法
dog.move(); // 执行 Dog 类的方法
cat.move(); // 执行 Cat 类的方法
}
}
在以上示例中,我们定义了一个 Animal 类,然后通过继承的方式创建了 Dog 和 Cat 类,它们实现了 Animal 类的 move() 方法并进行了不同的实现。在 Test 类中,我们通过声明 Animal、Dog 和 Cat 三个对象来执行它们的 move() 方法,这就是运行时多态性的体现。
输出结果为:
动物在移动
狗在跑
猫在爬
示例二:
public class Shape{
public void draw(){
System.out.println("形状");
}
}
public class Circle extends Shape{
public void draw(){
System.out.println("圆形");
}
}
public class Rectangle extends Shape{
public void draw(){
System.out.println("矩形");
}
}
public class Triangle extends Shape{
public void draw(){
System.out.println("三角形");
}
}
public class Test{
public static void main(String args[]){
Shape[] shapes = new Shape[3];
shapes[0] = new Circle();
shapes[1] = new Rectangle();
shapes[2] = new Triangle();
for (int i = 0; i < shapes.length; i++) {
shapes[i].draw();
}
}
}
在以上示例中,我们定义了一个 Shape 类,然后通过继承的方式创建了 Circle、Rectangle 和 Triangle 类,它们同样实现了 Shape 类的 draw() 方法并进行了不同的实现。在 Test 类中,我们通过声明一个 Shape 类型的数组来存储三个图形对象,然后使用 for 循环来遍历数组并执行它们的 draw() 方法,这就是重载多态性的体现。
输出结果为:
圆形
矩形
三角形
以上就是我对Java多态性的一点理解及其使用的两个示例。希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:谈谈对Java多态性的一点理解 - Python技术站