实验9:接口、多态性
一、实验目的与要求
1、多态性的概念、技术基础
2、构造方法的调用顺序
3、总结接口的应用
二、内容概要
1、多态性概念
是指不同类型的对象可以响应相同的消息。从相同的基类派生出来的多个类型可被当作同一种类型对待,可对这些不同的类型进行同样的处理,由于多态性,这些不同派生类对象响应同一方法时的行为是有所差别的。
例如
Cat行为是吃鱼,Dog行为是吃骨头
所有的Object类的对象都响应toString()方法
2、多态性的技术基础
向上塑型技术:一个父类的引用变量可以指向不同的子类对象
动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法,从而实现多态性
3、多态性的好处
应用程序不必为每一个派生类(子类)编写功能调用,只要对基类(特别是抽象基类)或接口处理即可,“以不变应万变”,大大提高程序的可复用性。
例如:下面代码Waiter类中的callPersonEat方法参数是Person 类型,所以利用向上塑性技术可以给其传参数China和USA类型。(); ,利用动态邦定技术运行时候根据p引用的具体对象调用创建对象时所属类的eat方法
interface Person{
public void eat();
}
class China implements Person{
public void eat(){
("chinese use chopsticks");
}
}
class USA implements Person{
public void eat(){
("usa use forks");
}
}
class Waiter{
static void callPersonEat(Person p){
(); //实例方法调用,动态绑定
}
public static void main(String a[]){
Person p1=new China();//向上塑性
Person p2=new USA();//向上塑性
(p1);
(p2);
/*Person p[]=new Person[2];
p[0]=new China();
p[1]=new USA();
for(int i=0;i<2;i++)
(p[i]);*/
}
}
例如,Ball类。代码如下,也是Java多态性的应用。
interface Ball{
void play();
}
class FootBall implements Ball{
public void play(){
("play football");
}
}
class BasketBall implements Ball{
public void play(){
("play Bask
Java接口多态实验(修正版带实验答案) 来自淘豆网m.daumloan.com转载请标明出处.