不积跬步,无以至千里;不积小流,无以成江海。
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号
浙公网安备 33010602011771号