您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,多态性是一个核心概念,它允许父类引用指向子类对象,并在运行时根据实际对象类型调用相应的方法。这种特性使得代码更加灵活和可扩展。以下是多态性的应用场景示例:
public class Shape {
public void draw() {
System.out.println("绘制图形");
}
}
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("绘制圆形");
}
}
public class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("绘制矩形");
}
}
public class DrawingApp {
public void drawShape(Shape shape) {
shape.draw(); // 根据实际的shape对象调用相应的draw方法
}
}
Animal
父类,包含一个 makeSound()
方法。Dog
、Cat
、Duck
子类,分别重写 makeSound()
方法。public class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪汪");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵喵");
}
}
public class Duck extends Animal {
@Override
public void makeSound() {
System.out.println("嘎嘎嘎");
}
}
public class AnimalSoundDemo {
public static void main(String[] args) {
Animal myAnimal = new Dog();
myAnimal.makeSound(); // 输出:汪汪汪
myAnimal = new Cat();
myAnimal.makeSound(); // 输出:喵喵喵
myAnimal = new Duck();
myAnimal.makeSound(); // 输出:嘎嘎嘎
}
}
DrawingApp
类的 drawShape
方法接受一个 Shape
类型的参数。无论传递的是 Circle
、Rectangle
还是其他任何继承自 Shape
的对象,都会调用相应的 draw
方法。这就是多态性的体现。Animal
是父类,Dog
、Cat
和 Duck
是子类。每个子类都重写了 makeSound
方法。在 AnimalSoundDemo
类的 main
方法中,myAnimal
被声明为 Animal
类型,但实际指向的对象是 Dog
、Cat
或 Duck
的实例。调用 makeSound
方法时,会根据实际对象类型调用相应的方法,这就是多态性。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。