java多态简单例子
2015-12-18 22:30
471 查看
/* 对象的多态性:动物 x = new 猫(); 函数的多态性:函数重载、重写 1、多态的体现 父类的引用指向了自己的子类对象 父类的引用也可以接收自己的对象 2、多态的前提 必须是类与类之间只有关系,要么继承或实现 通常还有一个前提,存在覆盖 3、多态的好处 多态的出现大大的提高了程序的扩展性 4、多态的弊端 只能使用父类的引用访问父类的成员 5、多态的应用 6、注意事项 */ /* 需求: 猫,狗。 */ abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println("吃鱼"); } public void catchMouse() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨头"); } public void kanJia() { System.out.println("看家"); } } class DuoTaiDemo { public static void main(String[] args) { function(new Cat()); function(new Dog()); Animal a = new Cat();//向上转型 a.eat(); Cat c = (Cat)a;//向下转型 c.catchMouse(); } public static void function(Animal a) { a.eat(); //用于子类型有限 //或判断所属类型进而使用其特有方法 if(a instanceof Cat) { Cat c = (Cat)a; c.catchMouse(); } else if(a instanceof Dog) { Dog c = (Dog)a; c.kanJia(); } } }
相关文章推荐
- struts2文件上传,文件类型 allowedTypes对应
- JAVA菜鸟学习小计1
- JAVA中使用JSON
- 修改MyEclipse下创建Web项目中新建Jsp的默认编码格式
- JAVA并发编程笔记三
- JAVA中使用JSON
- java 读取资源文件两种方法
- 3、Spring4之Bean 配置的细节
- Spring发展历程
- java中 对象数组的初始化
- java访问权限控制
- Java关键字final、static使用总结 (final static在容器中不可以改变容器但可以改变存放)
- Spring 之注解事务 @Transactional
- Java多线程总结(6)— 线程池的基本使用和执行流程分析
- struts2 中 action 属性自动注入的发现
- java设计模式---原型模式
- Android实战(四)------Myeclipse10搭建android运行环境图文详细步骤-----生成myeclipse中的AVD模拟器
- Android实战(四)------Myeclipse10搭建android运行环境图文详细步骤-----生成myeclipse中的AVD模拟器
- Java import static
- webdriver入门-Java