1. 多态:同一个引用类型,使用不同的实例而执行不同的操作。 子类的对象,父类的引用;
2. 多态的实现方式: 1)使用父类作为方法形参实现多态; 子类重写父类方法 用父类接收子类对象 关键代码: 父类:public abstract void eat(); 子类:public void eat(){ System.out.println("狗狗吃狗粮...."); super.setHealth(super.getHealth()+3); } 主人类:public void feed(Pet pet){ pet.eat(); } 测试类Text:Dog d=new Dog("大黄",100,"95","大黄狗"); master.feed(d); 2)使用父类作为方法的返回值: 关键代码: 主人类: public Pet getPet(int typeid){ Pet pet; if(typeid==1){ pet=new Dog(); }else if(typeid==2){ pet=new Qie(); }else{ pet=new Mou(); } return pet; } 测试类:Pet p=master.getPet(result); master.feed(p);
3. 如果某方法是子类特有的,那在掉用方法时,需要对父类引用进行强转; Dog d=(Dog)pet; instanceof的语法:对象 instanceof 类型或接口 经验:强转和instanceof一起使用 关键代码:public void play(Pet pet){ if(pet instanceof Dog){ Dog dog=(Dog)pet; dog.catchingFlyDisc(); }else{ Qie qie=(Qie)pet; qie.swimming(); } }
4. 多态的优点: 多态可以减少类中代码量,可以提高代码的可扩展性和可维护性
转载于:https://www.cnblogs.com/lovel/p/6853067.html