Java 中多态的好处

多态的好处:
 * 1)提高了代码的复用性(由继承保证)
 * 2)提高了代码的扩展性(由多态来保证)

//动物类
class Animal{
	public void eat() {
		System.out.println("动物需要吃饭");
	}
	public void sleep() {
		System.out.println("动物都需要休息");
	}
}
//定义一个猫类
class Cat extends Animal{
	@Override
	public void eat() {
		System.out.println("猫吃");
	}
	@Override
	public void sleep() {
		System.out.println("猫趴着睡");
	}
}
//定义一个狗类
class Dog extends Animal{
	@Override
	public void eat() {
		System.out.println("狗吃骨头");
	}
	@Override
	public void sleep() {
		System.out.println("狗躺着睡");
	}
}
//动物类工具
class AnimalTool{
	private AnimalTool() {}//构造私有化,外界不能创建该类对象
	//父类引用指向子类对象
	public static void useAnimal(Animal a) {//a为形式参数
		a.eat();
		a.sleep();
	}
}
//测试类
public class DouTaiDemo2 {
	public static void main(String[] args) {
		Dog d=new Dog();
		d.eat();
		d.sleep();
		System.out.println("---------");
		Dog d2=new Dog();
		d2.eat();
		d2.sleep();
		System.out.println("---------");
		//改造---->定义两个静态方法,形参都是对应具体动物,进行测试
		/*useDog(d);
		useDog(d2);
		System.out.println("---------");
		useCat(new Cat());
		useCat(new Cat());
		System.out.println("---------");*/
		//提供一个动物类:分别产生具体动物对象调用对应的eat()/sleep()
		AnimalTool.useAnimal(d);//Animal a=new Dog()
		AnimalTool.useAnimal(new Cat());//Animal a=new Cat()
	}
	
	//定义一些功能
	/*public static void useDog(Dog d) {
		d.eat();
		d.sleep();
	}

	public static void useCat(Cat c) {
		c.eat();
		c.sleep();
	}*/
}

 

你可能感兴趣的:(JAVA笔记,java)