java方法重写案例
时间: 2023-12-15 12:06:22 浏览: 41
好的,下面是一个简单的Java方法重写案例:
```java
class Animal {
public void move() {
System.out.println("动物在移动");
}
}
class Dog extends Animal {
@Override
public void move() {
System.out.println("狗在跑");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move(); // 输出:动物在移动
dog.move(); // 输出:狗在跑
}
}
```
在这个案例中,Animal类有一个move()方法,它输出“动物在移动”。Dog类继承自Animal类,并且重写了move()方法,输出“狗在跑”。在Test类的main方法中,我们创建了一个Animal对象和一个Dog对象,分别调用它们的move()方法,可以看到,Animal对象输出的是“动物在移动”,而Dog对象输出的是“狗在跑”。这就是方法重写的作用,子类可以重写父类的方法,实现自己的特有功能。
相关问题
java多肽经典案例
多态是指同一个方法调用由于对象不同可能会产生不同的行为。下面是一个经典的Java多态案例:
假设有一个动物类Animal,其中有一个eat()方法,然后有两个子类Dog和Cat,它们都继承了Animal类并重写了eat()方法。代码如下:
```java
class Animal {
public void eat() {
System.out.println("动物吃东西");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("狗吃骨头");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("猫吃鱼");
}
}
```
现在我们可以创建一个Animal类型的数组,然后将Dog和Cat的实例放入其中,然后调用它们的eat()方法,代码如下:
```java
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
for (int i = 0; i < animals.length; i++) {
animals[i].eat();
}
```
输出结果为:
```
狗吃骨头
猫吃鱼
```
这就是Java多态的经典案例,同一个方法调用,由于对象不同可能会产生不同的行为。
java多态经典案例讲解
Java中多态是一种重要的面向对象编程特性,它允许一个对象以多种不同的方式工作。下面介绍一个经典的Java多态案例——“动物园”。
假设有一个“动物园”类,里面有一个“动物”类,还有“狗”和“猫”两个子类,代码如下:
```java
class Zoo {
public void play(Animal animal) {
animal.shout();
}
}
class Animal {
public void shout() {
System.out.println("动物叫!");
}
}
class Dog extends Animal {
public void shout() {
System.out.println("汪汪汪!");
}
}
class Cat extends Animal {
public void shout() {
System.out.println("喵喵喵!");
}
}
```
在“动物园”类中有一个play方法,它接收一个“动物”类对象作为参数,然后调用这个对象的shout方法。在“狗”和“猫”两个子类中分别重写了shout方法,实现了不同的叫声。
这时候我们可以创建一个“动物园”对象,然后分别将“狗”和“猫”对象传递给play方法进行测试。代码如下:
```java
public class Main {
public static void main(String[] args) {
Zoo zoo = new Zoo();
Animal dog = new Dog();
Animal cat = new Cat();
zoo.play(dog);
zoo.play(cat);
}
}
```
运行结果如下:
```
汪汪汪!
喵喵喵!
```
通过这个案例,我们可以看到,在“动物园”类中,play方法接收一个“动物”类对象作为参数,而在实际测试中我们传递的是“狗”和“猫”对象,这就是多态的应用。我们可以看到,即使传递的是不同的对象,调用的都是各自重写的shout方法,实现了不同的叫声。