韩顺平循序渐进学java 第12讲 多态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了韩顺平循序渐进学java 第12讲 多态相关的知识,希望对你有一定的参考价值。
12.1 多态-四大特征之四
12.1.1 概念
所谓多态,就是指一个引用(类型)在不同情况下的多种状态。
可以这样理解:多态是指通过指向父类的指针,来调用在不同子类中实现的方法。
12.1.2 注意事项
在讲解多态的时候,我们注意到这样一个现象-类型的转换。
1、java允许父类的引用变量引用它的子类的实例(对象)
Animal animal=new Cat();
2、关于类型转换还有一些细节要求,比如子类能不能转换成父类,有什么要求等等...
多态代码演示:
1 /**日期:2016-03-04 2 * 功能:多态的演示 3 */ 4 public class Practice 5 { 6 public static void main(String []args) 7 { 8 Master master=new Master(); 9 master.feed(new Cat(), new Fish()); //调用子类 10 } 11 } 12 13 class Master //类主人 14 { 15 public void feed(Animal animal, Food food) //多态的方法,可以利用父类调用子类, 16 //这里的代码可以在增加子类的时候保持不动,很方便 17 { 18 animal.getName(); 19 food.eat(); 20 } 21 } 22 23 class Animal //父类动物 24 { 25 String name; 26 public void getName() 27 { 28 System.out.println("不知道是什么动物!"); 29 } 30 } 31 32 class Cat extends Animal //动物的子类猫 33 { 34 public void getName() 35 { 36 System.out.println("这是一只猫!"); 37 } 38 } 39 40 class Dog extends Animal //动物的子类狗 41 { 42 public void getName() 43 { 44 System.out.println("这是一只狗!"); 45 } 46 } 47 48 class Food //父类食物 49 { 50 String name; 51 public void eat() 52 { 53 System.out.println("不知道是什么食物!"); 54 } 55 } 56 57 class Fish extends Food //食物的子类鱼 58 { 59 public void eat() 60 { 61 System.out.println("猫爱吃鱼!"); 62 } 63 } 64 65 class Bone extends Food //食物的子类骨头 66 { 67 public void eat() 68 { 69 System.out.println("狗爱骨头!"); 70 } 71 }
运行结果:
1 这是一只猫! 2 猫爱吃鱼!
以上是关于韩顺平循序渐进学java 第12讲 多态的主要内容,如果未能解决你的问题,请参考以下文章
韩顺平循序渐进学java 第01讲 内容介绍.项目演示.原理剖析