用一个小例子来认识Java多态
来源:互联网 发布:java微信支付查询订单 编辑:程序博客网 时间:2024/05/21 19:50
多态的类型
- 静态多态(编译时):重载
- 动态多态(运行时):重写、对象多态性
向上和向下转型
向上转型:用子类对象实例化父类,如,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(); }}
希望写清楚了。
阅读全文
0 0
- 用一个小例子来认识Java多态
- 从一个小例子来初步认识递归,迭代,动态规划。
- 一个小例子认识工厂模式
- 【java】【多态】的一个小例子
- 时域认识采样定理的一个小例子
- 以一个小例子来说明java中 == 与 equals() 的区别
- Java中的抽象、继承、多态 一个小例子
- 一个好办法:用小例子来实验语言特性,或者是工具特性
- 用一个小例子,来分析nodejs的异步调用的顺序
- AAPCS 学习课后练习 - 通过一个小例子来讲解
- Java 小例子:打印一个金字塔
- java继承的一个小例子
- 一个简单的 java socket 小例子
- 一个java执行exe的小例子
- java.nio的一个小例子
- java button tooltip的一个小例子
- java线程的一个小例子
- Java内存泄露的一个小例子
- hibernate的事务处理:
- SQL DEFAULT 约束
- throwable的子类
- (51nod)动态规划基础篇练习题
- tfidf给每个词加权重
- 用一个小例子来认识Java多态
- 设计模式学习笔记六:.NET反射工厂
- SSL2674 2017年8月9日提高组T2 覆盖(dp)
- 关于Neo4j数据库连接出现的问题
- 数据结构——栈(c语言)
- 【PAT】【Advanced Level】1058. A+B in Hogwarts (20)
- centos 6.9 安装 Discuz3.2X 论坛
- String初探
- 笔记——多重背包