标签:
/** * * 功能:演示多态 */ package com.litao; public class Demo5 { public static void main(String[] args) { // TODO Auto-generated method stub //体现多态 /*Cat cat1 = new Cat(); cat1.cry(); Dog dog = new Dog(); dog.cry();*/ //自动判断右边引用是什么类型的 //所有子类或孙子类的实例统统让一个父类来引用 // Animal animal = new Cat(); // //如果猫有cry方法,则调猫的cry,否则调Animal的cry // animal.cry(); // // animal = new Dog(); // animal.cry(); Master master = new Master(); master.feed(new Dog(), new Bone()); master.feed(new Cat(), new Fish()); } } //主人类 class Master{ //给动物喂食物 public void feed(Animal an, Food f) { an.eat(); f.showName(); } } class Food{ String name; public void showName() { } } class Fish extends Food{ public void showName() { System.out.println("鱼"); } } class Bone extends Food{ public void showName() { System.out.println("骨头"); } } //动物类Animal class Animal { String name; int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //动物会叫 public void cry() { System.out.println("不知道怎么叫..."); } public void eat() { System.out.println("不知道喜欢吃什么"); } } class Dog extends Animal { //猫自己叫 public void cry() { System.out.println("旺旺叫"); } //动物可以吃东西 public void eat() { System.out.println("狗喜欢吃骨头"); } } class Cat extends Animal { //猫自己叫 public void cry() { System.out.println("猫猫叫"); } public void eat() { System.out.println("猫喜欢吃鱼"); } }
标签:
原文地址:http://www.cnblogs.com/litao0505/p/5342827.html