java多态练习题 _原创精品文档.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

java多态练习题

Java多态练习题

Java是一种面向对象的编程语言,其中的多态性是其最重要的特性之一。通过

多态,我们可以实现代码的灵活性和可扩展性。在这篇文章中,我们将通过一

些练习题来加深对Java多态性的理解。

练习一:动物的多态

假设有一个动物类Animal,它有一个方法叫做makeSound(),用于输出动物的

叫声。现在我们派生出了两个子类Dog和Cat,它们分别重写了makeSound()

方法,分别输出汪汪汪和喵喵喵。

现在我们创建一个Animal类型的数组,数组中存放了不同的动物对象,包括

Dog和Cat。我们遍历数组,调用每个动物对象的makeSound()方法,观察输

出结果。

代码示例:

```java

classAnimal{

publicvoidmakeSound(){

System.out.println(动物发出叫声);

}

}

classDogextendsAnimal{

@Override

publicvoidmakeSound(){

System.out.println(汪汪汪);

}

}

classCatextendsAnimal{

@Override

publicvoidmakeSound(){

System.out.println(喵喵喵);

}

}

publicclassPolymorphismExample{

publicstaticvoidmain(String[]args){

Animal[]animals=newAnimal[3];

animals[0]=newDog();

animals[1]=newCat();

animals[2]=newDog();

for(Animalanimal:animals){

animal.makeSound();

}

}

}

```

运行结果:

```

汪汪汪

喵喵喵

汪汪汪

```

通过这个练习题,我们可以看到多态的作用。尽管数组中存放的是Animal类型

的对象,但是在运行时,根据实际对象的类型,调用的是相应子类的方法。

练习二:图形的多态

假设我们有一个图形类Shape,它有一个抽象方法叫做calculateArea(),用于计

算图形的面积。现在我们派生出了三个子类Circle、Rectangle和Triangle,它

们分别重写了calculateArea()方法,分别计算圆形、矩形和三角形的面积。

现在我们创建一个Shape类型的数组,数组中存放了不同的图形对象,包括

Circle、Rectangle和Triangle。我们遍历数组,调用每个图形对象的

calculateArea()方法,观察输出结果。

代码示例:

```java

abstractclassShape{

publicabstractdoublecalculateArea();

}

classCircleextendsShape{

privatedoubleradius;

publicCircle(doubleradius){

this.radius=radius;

}

@Override

publicdoublecalculateArea(){

returnMath.PI*radius*radius;

}

}

classRectangleextendsShape{

privatedoublewidth;

privatedoubleheight;

publicRectangle(doublewidth,doubleheight){

this.width=width;

文档评论(0)

152****4675 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档