用一个小例子来认识Java多态
2017-08-09 19:13
465 查看
多态的类型
静态多态(编译时):重载
动态多态(运行时):重写、对象多态性
向上和向下转型
向上转型:用子类对象实例化父类,如,Animals animal=new Cat();是系统自动转换
向下转型:和向上转型相反,用父类对象实例化子类,需要加上强制转换,如,
Animals animals=new Animals();
Cat cat=(cat)animals;
下面用一个例子来说明向上转型的多态:
希望写清楚了。
静态多态(编译时):重载
动态多态(运行时):重写、对象多态性
向上和向下转型
向上转型:用子类对象实例化父类,如,Animals animal=new Cat();是系统自动转换
向下转型:和向上转型相反,用父类对象实例化子类,需要加上强制转换,如,
Animals animals=new Animals();
Cat cat=(cat)animals;
下面用一个例子来说明向上转型的多态:
package poly; class Animals{ String name; public void shout() { System.out.println("叫叫叫"); } } class Cat extends Animals{ public void shout() { System.out.println("喵喵喵"); } } class Dog extends Animals{ public void shout() { System.out.println("汪汪汪"); } } class Duck extends Animals{ public void shout() { System.out.println("嘎嘎嘎"); } } class Pig extends Animals{ public void shout() { System.out.println("哼哼哼"); } } public class PolyDemo { public static void main(String[] args) { // Cat cat=new Cat(); // cat.shout(); // Dog dog=new Dog(); // dog.shout(); // Duck duck=new Duck(); // duck.shout(); // Pig pig=new Pig(); // pig.shout(); //在这里来解释多态的好处:如果不用多态,每次调用子类对象的方法都需要自己动手,有时程序中会出现根据情况不同来调用不同子类方法的情况,这时需要先进行一个判断,若子类对象过多,工作过于繁杂;而如果用多态,每次只需要用一个父类对象管着,在程序运行时系统自动判断是哪个对象,然后调用相应的方法即可。 polymorphic(new Cat()); polymorphic(new Dog()); polymorphic(new Duck()); polymorphic(new Pig()); } public static void polymorphic(Animals a) { a.shout(); } }
希望写清楚了。
相关文章推荐
- 02_java基础_一个例子认识变量定义及其好处
- JAVA学习--多态使用的一个例子
- Java多态的一个简单入门的例子
- 【java】【多态】的一个小例子
- 一个例子将java多态搞定
- 01_java基础_一个例子认识Java
- 利用java实现的一个发送手机短信的小例子
- Java 小例子:创建一个可拖拽图片的面板
- java关于new出一个对象的例子
- 一个经典例子让你彻彻底底理解java回调机制
- 一个小例子理解多态 - 修改 0 次
- 一个java和golang(go语言)通信的例子。
- 一个Java在线预览和下载的例子
- 一个经典例子让你彻彻底底理解java回调机制
- java多线程发生死锁的一个例子
- Java的异常处理机制的一个例子-读后定能对异常理解深刻
- 关于JAVA注解的一个例子
- 一个例子理解java面向对象的机制
- Java编写CORBA的一个简单例子(CORBA入门)
- java switch语句的一个例子