Java 多态

Java 多态性

多态的意思是“多种形态”,当有很多通过继承关联起来的类时,就会发生多态性。

上一章所述,继承可以从另一个类继承属性和方法,多态可以让这些方法执行不同的任务。

例如,考虑一个名为Animal的父类,有一个名为animalSound()的方法。Animal的子类可以是猪类、猫类、狗类、鸟类,它们也有自己的animalSound()方法(猪叫、猫叫等等):

示例

class Animal {
  public void animalSound() {
    System.out.println("动物发出声音");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("小猪说: 呜呜");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("狗说: 旺旺");
  }
}

记住,在继承一章中介绍过,使用extends关键字来继承类。

现在我们可以创建PigDog对象,并调用这两个对象的animalSound()方法:

class Animal {
  public void animalSound() {
    System.out.println("动物发出声音");
  }
}

class Pig extends Animal {
  public void animalSound() {
    System.out.println("小猪说: 呜呜");
  }
}

class Dog extends Animal {
  public void animalSound() {
    System.out.println("狗说: 旺旺");
  }
}

class MyMainClass {
  public static void main(String[] args) {
    Animal myAnimal = new Animal();  // 创建一个动物对象
    Animal myPig = new Pig();  // 创建一个Pig对象
    Animal myDog = new Dog();  // 创建一个Dog对象

    myAnimal.animalSound();
    myPig.animalSound();
    myDog.animalSound();
  }
}

为什么及何时使用“继承”和“多态性”?

“继承”和“多态性”对代码的可重用性很有用: 在创建新类时可以重用现有类的属性和方法。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载