面向对象的特性——多态

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();
}
}





猜你喜欢

转载自blog.csdn.net/qq_41819327/article/details/79517824