父类 Animal.java
package com.gongsi.cn.oa.work730.test1;
public class Animal {
public Animal animal;
public void eat() {
System.out.println("动物吃东西");
}
}
子类 Cat.java
package com.gongsi.cn.oa.work730.test1;
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃老鼠");
}
}
子类Dog.java
package com.gongsi.cn.oa.work730.test1;
public class Dog extends Animal{
public void eat() {
System.out.println("狗吃米");
}
}
Manager(1).java
package com.gongsi.cn.oa.work730.test1;
public class Manager {
//使用属性实现多态
public Animal animal;
public void feed() {
animal.eat();
}
public Animal getAnimal() {
return animal;
}
public void setAnimal(Animal animal) {
this.animal = animal;
}
// public void feed(Animal animal) {
// animal.eat();
// }
}
Test(1).java
package com.gongsi.cn.oa.work730.test1;
public class Test {
public static void main(String[] args) {
Manager manager=new Manager();
Animal animalDog=new Dog();
manager.setAnimal(animalDog);
manager.feed();
// manager.feed(animalDog);
}
}
或者Manager和Test还可以这样写
Manager(2).java
package com.gongsi.cn.oa.work730.test1;
public class Manager {
//使用属性实现多态
//public Animal animal;
//public void feed() {
// animal.eat();
//}
//public Animal getAnimal() {
// return animal;
//}
//public void setAnimal(Animal animal) {
// this.animal = animal;
//}
public void feed(Animal animal) {
animal.eat();
}
}
Test(2).java
package com.gongsi.cn.oa.work730.test1;
public class Test {
public static void main(String[] args) {
Manager manager=new Manager();
Animal animalDog=new Dog();
// manager.setAnimal(animalDog);
// manager.feed();
manager.feed(animalDog);
}
}
j结果都是一样的