【JAVA】java复习笔记--多态详解
2020-03-05 02:30
225 查看
java基础之多态
定义:
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。
比如:同样是调用人的“休息”方法,张三是睡觉,李四是玩游戏,程序员是敲代码,数学教授是做数学题; 同样是调用人“吃饭”的方法,中国人用筷子吃饭,西方人用刀叉吃饭。
多态要点:
- 多态是方法的多态,不是属性的多态(多态与属性无关)
- 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。
- 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
代码示例:
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("喵喵喵喵!"); } } public class TestPolym { public static void main(String[] args) { Animal a1 = new Cat(); // 向上可以自动转型 //传的具体是哪一个类就调用哪一个类的方法。大大提高了程序的可扩展性。 animalCry(a1); Animal a2 = new Dog(); animalCry(a2);//a2为编译类型,Dog对象才是运行时类型。 //编写程序时,如果想调用运行时类型的方法,只能进行强制类型转换。 // 否则通不过编译器的检查。 Dog dog = (Dog)a2;//向下需要强制类型转换 dog.seeDoor(); } // 有了多态,只需要让增加的这个类继承Animal类就可以了。 static void animalCry(Animal a) { a.shout(); } /* 如果没有多态,我们这里需要写很多重载的方法。 * 每增加一种动物,就需要重载一种动物的喊叫方法。非常麻烦。 static void animalCry(Dog d) { d.shout(); } static void animalCry(Cat c) { c.shout(); }*/ }
执行结果如图:
使用多态优点:
提高了代码的可扩展性,符合开闭原则
使用多态缺点:
无法调用子类特有的功能
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java学习笔记(33)-- Java 多态的详解
- java学习笔记-面向对象01——多态详解_对象类型转换
- 黑马程序员-复习笔记之JavaBean详解
- JAVA复习笔记--------类(五)多态
- java复习笔记4:封装,继承,多态
- Java 多态笔记详解
- java 学习笔记——类之间的关系之封装、继承与多态的详解
- Java复习笔记(五)-----详解内部类
- 【黑马程序员】多态、抽象类、接口——Java复习笔记
- JavaWeb框架复习笔记-Struts2(result属性详解)
- java 编程思想笔记之多态
- java核心技术学习笔记7---继承与多态
- Tomcat与java.web开发技术详解--笔记
- Java基础复习笔记 数组,内存形式,父子,内存控制01
- Java学习笔记——类与对象(封装、继承与多态)
- JAVA自学笔记(二):重用与多态
- 复习《Thinking in Java》笔记三:第十一章笔记
- objective-c学习笔记第六章《objective-c 多态,动态类型,动态绑定与java中的区别》
- thinking in java笔记 8 多态
- Java复习笔记(二)