java多态演示
2016-01-22 15:13
513 查看
/* 多态测试 1.前提 类和类必须是继承或者实现关系,方法之间一般会被覆盖 2.作用 提高代码扩展性 3.弊端 当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。 访问子类特有方法需要通过instanceof关键字判断 4.体现 父类引用或者接口的引用指向了自己的子类对象.向上转型和向下转型 */ abstract interface Animal{ abstract void eat(); } class Dog implements Animal{ public void eat(){ System.out.println("吃狗粮"); } public void hunt(){ System.out.println("狩猎"); } } class Cat implements Animal{ public void eat(){ System.out.println("吃猫粮"); } public void catchFish(){ System.out.println("抓鱼"); } } class DuoTaiDemo{ public static void main(String[]args){ function(new Cat());//等于Animal a = new Cat();将子类提升到父类,向上转型 } public static void function(Animal a){ a.eat(); if(a instanceof Cat){ Cat c = (Cat)a;//将父类的引用转为子类对象 c.catchFish(); }else if(a instanceof Dog){ Dog d = (Dog)a;//将父类的引用转为子类对象 d.hunt(); } } }
相关文章推荐
- fastjson处理接口时的一个问题
- Ruby 之 class 中的 private、 protected、public
- C#中实现Fluent Interface的三种方法
- 解析abstract与override究竟可不可以同时使用
- Ruby中的public、private、protected区别小结
- c#中的interface abstract与virtual介绍
- 领悟php接口中interface存在的意义
- JavaScript的public、private和privileged模式
- C#接口interface用法实例
- 深入解读php中关于抽象(abstract)类和抽象方法的问题分析
- PHP abstract与interface之间的区别
- C#接口(Interface)用法分析
- PHP SPL标准库之接口(Interface)详解
- PHP 抽象方法与抽象类abstract关键字介绍及应用
- Java修饰符 abstract,static,final 的区别详解
- C++中的三种继承public,protected,private详细解析
- go语言中的interface使用实例
- 深入理解C++中public、protected及private用法
- 项目实施补充
- 修改设备密码及灌溉IOS