一、多态:同一种引用类型,使用不同的实例而执行不同的操作。
二、使用多态实现的思路:1编写父类2编写子类,子类重写父类的方法。3运行时,使用父类的类型,子类的对象。注:向上转型(子类转换成父类)Pet pet=new Dog();向下转型,(强制转换)(父类转换成子类)Dog dog=(Dog)pet 强制转换一般结合intanceof 结合使用,语法:对象 intanceof 类或接口。用来判断前面的是否属于后面的类型。一般用于子类所特有的方法时候,在测试类中需要调用这个子类特有的方法时候,需要强制转换。三实现多态的两种形式1使用父类作为方法形参实现多态。2使用父类作为方法返回值实现多态。四实现多态的好处多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性一父类public class Person { public void show(){ System.out.println("******我是人类*******"); }}二子类男孩public class Boys extends Person{ public void show(){ System.out.println("我是男孩"); } public void play(){ System.out.println("我们很爱打游戏"); }}子类女孩public class Girls extends Person { public void show(){ System.out.println("我是女孩"); } public void play(){ System.out.println("我们很爱逛街"); }}管理类:public class Manager { public void showinformation(Person p){ if(p instanceof Boys){ Boys people=(Boys)p; people.play(); }else if(p instanceof Girls){ Girls people =(Girls)p; people.play(); } }注:父类作为方法的参数实现多态public Person getInformation(int num){
Person p1=null; if(num==1){ p1=new Boys(); p1.show(); }else if(num==2){ p1=new Girls(); p1.show(); } return p1; }注:父类作为方法的返回值实现多态 public Person getInformation(int num){ Person p1=null; if(num==1){ p1=new Boys(); p1.show(); }else if(num==2){ p1=new Girls(); p1.show(); } return p1; }测试类 public static void main(String[]args){ Manager you=new Manager(); Person p=new Girls(); you.showinformation( p); Person ty =you.getInformation(1); }