给一个多态的代码示例 Java
时间: 2023-08-17 17:58:25 浏览: 58
当谈到多态时,一个常见的例子是通过继承和方法重写来实现多态性。以下是一个使用Java语言的多态代码示例:
```java
// 父类
class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
// 子类1
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("狗叫:汪汪汪");
}
}
// 子类2
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("猫叫:喵喵喵");
}
}
// 测试类
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal1 = new Dog();***
相关问题
写一段java多态代码
当然,这是一个简单的 Java 多态示例代码:
```java
// 父类 Animal
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
// 子类 Dog
class Dog extends Animal {
@Override
public void sound() {
System.out.println("汪汪汪");
}
}
// 子类 Cat
class Cat extends Animal {
@Override
public void sound() {
System.out.println("喵喵喵");
}
}
// 测试类
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 输出:汪汪汪
animal2.sound(); // 输出:喵喵喵
}
}
```
在上面的示例中,Animal 是一个父类,Dog 和 Cat 都是 Animal 的子类。它们都重写了父类的 sound() 方法,以实现各自的声音。在测试类中,我们创建了一个 Dog 对象和一个 Cat 对象,并将它们赋值给 Animal 类型的引用变量。通过调用 sound() 方法,会根据对象的实际类型进行动态绑定,从而输出相应的声音。这就是多态的体现。
给我一个java多态的代码并详细解说
好的,下面是一个Java多态的代码示例,并详细解说:
```java
public class Animal {
public void makeSound() {
System.out.println("The animal makes a sound.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("The dog barks.");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("The cat meows.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Dog();
Animal animal3 = new Cat();
animal1.makeSound();
animal2.makeSound();
animal3.makeSound();
}
}
```
这个代码示例展示了一个简单的多态应用场景。Animal是一个抽象的类,它有一个makeSound()方法,用来输出动物发出的声音。Dog和Cat是Animal的子类,它们分别重写了makeSound()方法,并输出狗和猫发出的声音。
在Main类的main()方法中,我们创建了三个Animal类型的对象,分别是Animal、Dog和Cat的实例。然后我们分别调用它们的makeSound()方法,输出它们发出的声音。
在这个例子中,我们使用了编译时多态和运行时多态。编译时多态是通过声明Animal类型的变量来实现的,我们可以将Dog和Cat的实例赋值给它们,这样在编译时就确定了变量的类型。而运行时多态是通过重写makeSound()方法来实现的,子类重写父类的方法,当我们调用子类的实例方法时,会执行子类的方法。
这个例子展示了多态的优势:我们可以使用父类类型的变量来引用子类对象,从而实现了代码的灵活性和可扩展性。如果我们需要新增一个动物的子类,只需要继承Animal类并重写makeSound()方法,就可以在不改变原有代码的情况下扩展程序的功能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)