JAVA中“多态”
在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。
切记:继承是多态得以实现的基础
多态实例演示
在JAVA中,为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。
//定义接口Animal
interface Animal{
void shout(); //定义抽象shout()方法
}
//定义Cat类实现Animal接口
class Cat implements Animal{
//实现shout()方法
public void shout(){
System.out.println("喵喵·····");
}
}
//定义Dog类实现Animal接口
class Dog implements Animal{
//实现shout()方法
public void shout(){
System.out.println(""汪汪汪·····);
}
}
//定义测试类
public class Example{
public static void main(String [] args){
Animal an1 = new Cat() ;//创建Cat对象,使用Animal类型的变量an1引用
Animal an2 = new Dog();//创建Dog对象,使用Animal类型的变量an2引用
animalShout(an1); //创建animalShout()方法,将an1作为参数传入
animalShout(an2); //创建animalShout()方法,将an2作为参数传入
}
//定义静态的animalShout方法,接收一个Animal类型的参数
public static void animalShout(Animal an){
an.shout(); //调用实际参数的shout()方法
}
}