今天老师讲了多态的使用

多态是同一个行为具有多个不同表现形式或形态的能力。

多态的优点: 1. 消除类型之间的耦合关系  2. 可替换性   3. 可扩充性  4. 接口性  5. 灵活性  6. 简化性

我个人认为   可替换性    可扩充性   灵活性 到是很充分的体现出来了。

现在就用问题来体现吧 !!!      

 
1、创建一个动物类
2、创建一个动物的数组,长度2个
3、创建一只猫(有抓老鼠方法)
4、创建一条蛇(有冬眠方法)        就这个问题
5、分别把它们放在动物的数组中。

  创建一个动物类:


package pkg26;

public class Animal{
	private String name;	
	
	public String getName(){
		return this.name;
	}	
	public void setName(String name){
		this.name = name;
	}	
}

创建一只猫类
package pkg26;

public class Cat extends Animal{
		
	public void methodCat(){
		System.out.println("我被一只老鼠抓了");
	}
	
}
 

创建一条蛇类

 

package pkg26;

public class Snake extends Animal{	
	@Override//@Override 是帮助自己检查是否正确的复写了父类中已有的方法.

 

            //告诉读代码的人,这是一个复写的方法

 

	public void setName(String name){	//这个方法名一定要跟父类中的方法名setName一样!!!

 

       super.setName(name+"先生");//这是一个重写的方法,可以比这个方法注释起来,运行一遍和不注释运行比较一下 
    }
      public void methodSnake(){
        System.out.println("我吞了一个大象");
      }
}

 

  

创建一个动物的数组并分别把它们放在动物的数组中,
但是,这都是要借助测试类才能实现的
下边就是测试类:
package pkg26;

public class Test{ public static void main(String args[]){ Animal animals[] = new Animal[2]; animals[0] = new Cat(); 
          //如果我要给一只猫一个名字,那么就要这样做
          /*
            animals[0].setName("小白");//让一只猫叫小白
            System.out.println(animals[0].getName());              
          */ animals[1] = new Snake(); for(Animal o:animals){ //o.setName("123");//这的意思是把所有的动物的名字都设为123 System.out.println(o.getName()); } } }
 

JAVA的多态是很抽象的一个很重要的知识点,所以,要在这里下很多很多功夫!!!

所以,带着JAVA多态的优点把我上面的代码反复尝试!!!这样才能更好的学习!!!

还有,昨天,有一个人把我之前写的也看了而且还评论了!!!自己写的东西有人看 真的好开心!!!

  加油!!!