多态(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企服之家,中国第一个企服评测及商务社交产业平台。 |