在Java中,多态是指不同类的对象在调用同一个方法时所呈现出的多种不同行为。通过多态,消除了类之间的耦合关系,大大提高了程序的可扩展性和可维护性。
package four;
//定义一个抽象类
abstract class Animals5{
abstract void shout();//定义一个抽象方法
}
//定义dog类继承Animal类
class Dog5 extends Animals5{
//实现shout()方法
public void shout() {
System.out.println("汪汪汪。。");
}
}
//定义cat类继承Animals类
class Cat5 extends Animals5{
//实现shout()方法
public void shout() {
System.out.println("喵喵喵。。");
}
}
//测试类
public class Test05_Polymorphic {
public static void main(String[] args) {
Animals5 an1=new Dog5();//“向上转型”类型转换
Animals5 an2=new Cat5();//“向上转型”类型转换
an1.shout();
an2.shout();
Dog5 dog=(Dog5) an1;//“向下转型”类型转换
Cat5 cat=(Cat5) an2;//“向下转型”类型转换
dog.shout();
cat.shout();
//关键字instanceof用来判断对象是否为某个类或接口的实例
if(an1 instanceof Cat5) {
Cat5 cat5=(Cat5) an2;//“向下转型”类型转换
cat5.shout();
}else {
System.out.println("该类型的对象不是Cat5类型!");
}
}
}
注意:
1.Java的多态性是由类的继承、方法重写以及父类引用指向子类对象体现的;
2.多态中有时会涉及到将子类对象当作父类类型使用的情况-向上转型以及,将子类对象由父类向下转型为子类-向下转型情况;
3.instanceof关键字用于判断一个对象是否为某个类(或接口)的实例或者子类实例,可应用于向下转型中。