java中多态实例

  class Animal{
    	//在继承中申请对象时,同名的方法编译需要看父类中是否有此方法,但是运行时按照子类方法来运行,不会运行父类的方法。
    	//所以必须在父类中写此方法,要不会报错。
    	public void eat(){
    		System.out.println("动物需要吃东西");
    	}
    }
    
    class Dog extends Animal{
    	public void eat (){
    		System.out.println("狗吃骨头");
    	}
    }
    
    class Cat extends Animal{
    	public void eat(){
    		System.out.println("猫吃鱼");
    	}
    }
    
    
    //此处体现多态的思想,此处的Animal是父类,因此Cat、Dog对象都可以用。
    class AnimalTool{
    	public static void tool(Animal a){
    		a.eat();
    	}
    }
    
    class AnimalTest{
    	public static void main (String [] args){
    			Animal a1=new Cat();
    			a1.eat();
    			Animal a2=new Dog();
    			a2.eat();
    			
    			System.out.println("---------------------------");
    			
    			Cat a3=new Cat();
    			a3.eat();
    			Dog a4=new Dog();
    			a4.eat();
    			
    			System.out.println("---------------------------");
    			//由于tool在AnimalTool类中是静态方法所以可以采用此方式调用
    			AnimalTool.tool(a1);
    			AnimalTool.tool(a2);
    			
    			System.out.println("---------------------------");
    			
    			AnimalTool.tool(a3);
    			AnimalTool.tool(a4);
    			
				System.out.println("---------------------------");
			
				Animal a5=new Animal();
				AnimalTool.tool(a5);
    	}
    }

猜你喜欢

转载自blog.csdn.net/zfliu96/article/details/83031493