今天老师讲了多态的使用
多态是同一个行为具有多个不同表现形式或形态的能力。
多态的优点: 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多态的优点把我上面的代码反复尝试!!!这样才能更好的学习!!!
还有,昨天,有一个人把我之前写的也看了而且还评论了!!!自己写的东西有人看 真的好开心!!!
加油!!!