不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java的多态(接口/抽象类)
1.构建一个食物抽象类,Bone和Fish分别为其实现类,通过super传参。
2.构建一个动物类,对于Dog类和Cat类,分别使用多态,使food父类引用实现子类方法。
3.构建饲养员类,分别传入Food类和Animal类,多态的应用。
abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public String name() {
return name;
}
public abstract void eat(Food food);
}
abstract class Food {
String name;
public Food(String name) {
// TODO Auto-generated constructor stub
this.name = name;
}
public String getname() {
return name;
}
}
class Dog extends Animal {
public Dog(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void eat(Food food) {
// TODO Auto-generated method stub
System.out.println(this.name + " likes eating: " + food.getname());
}
}
class Cat extends Animal {
public Cat(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void eat(Food food) {
// TODO Auto-generated method stub
System.out.println(this.name + " likes eating: " + food.getname());
}
}
class Bone extends Food {
public Bone(String name) {
super(name);
}
}
class Fish extends Food {
public Fish(String name) {
super(name);
}
}
class feeder {
public void feedanimal(Animal animal, Food food) {
animal.eat(food);
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
feeder f = new feeder();
Animal an = new Dog("Dog");
Animal cat = new Cat("Cat");
Food fo = new Bone("骨头");
Food fi = new Fish("鱼");
f.feedanimal(an, fo);
f.feedanimal(cat, fi);
}
}
程序输出:
Dog likes eating: 骨头 Cat likes eating: 鱼
博客借鉴:https://www.cnblogs.com/summerdata/p/10786767.html
浙公网安备 33010602011771号