Java底子十:多态
多态(polymorphism)多态是指同一个方法调用,由于对象不同可能会有不同的举动。现实生活中,同一个方法,具体实现会完全不同。好比:同样是调用人 “用饭” 的方法,中国人用筷子用饭,西方人用刀叉,印度人用手用饭。
多态的要点:
[*]多态是方法的多态,不是属性的多态(多态与属性无关)。
[*]多态的存在要有3个须要的条件:继承、方法重写、父类引用指向子类对象。
[*]父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。
package polymorphism;
public class Animal {
public void shout(){
System.out.println("叫了一生");
}
}
class Dog extends Animal{
public void shout(){
System.out.println("汪汪汪。。。");
}
public void seeDoor(){
System.out.println("看门中。。。");
}
}
class Cat extends Animal{
public void shout(){
System.out.println("喵喵喵。。。");
}
}
// 测试
package polymorphism;
public class TestPolym {
public static void main(String[] args) {
animalCry(new Dog());
animalCry(new Cat());
Animal animal = new Dog();
animal.shout();
// error: 这里就是不满住条件3,父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。
// 这里的seeDoor并不是父类引用的方法。所以报错。
// animal.seeDoor();
}
static void animalCry(Animal a) {
a.shout(); // 可以出现多态
}
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]