1.多态实现的条件:
1)类的继承
2)方法的重写
3)父类引用指向子类对象(这个较难理解,具体例子中可以很容易明白)
2.多态的作用
1)简化代码,在类的方法中传递父类对象的形参时,该方法的形参转换为子类实例化的形参时不需要重写方法,这就是多态的实现。
3.代码加深理解
1)animal父类
public class Animal {
private String name;
private int age;
public void eat(){
System.out.println("吃东西");;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2)cat子类
public class cat extends Animal { //实现了继承
public void eat(){ //达到了方法的重写
Animal a=new Animal();
a.setName("加菲猫");
System.out.println(a.getName()+"会吃鱼");
}
}
3)dog子类
public class dog extends Animal { //实现了继承
public void eat(){ //达到了重写
System.out.println("吃骨头");
}
}
4)测试方法
public class TestDuoTai {
public static void main(String[] args) {
// TODO Auto-generated method stub
testEat(new cat());
testEat(new dog());
//实现多态:父类对象的引用指向子类对象,一个包含父类对象形参的方法可以传入子类对象来实现,减少
testCatEat(new cat());testDogEat(new dog());
}
public static void testEat(Animal A){
System.out.print("多态的方式实现*********");
A.eat();
}
public static void testCatEat(cat c){
c.eat();
}
public static void testDogEat(dog d){
d.eat();
}
}