java多态的一些陷阱(java多态案例)

本文目录一览:

java 多态里的些错误

一个Java文件中有且只能有一个public修饰的类

第一个错误:

public static void main(String[] args)所在的那个类为主类,就是用public修饰的类

第二个错误

public void draw(){

System.out.println(“Square.draw()”);

public void p(){

System.out.println(“here is Triangle”);

}

}

你在draw()方法中又写了一个p()方法,这是不行的,方法可以调用方法,但不可以嵌套方法。这个应该是书写错误,所以提示你非法的表达式开始

第三个:

case 0 : return new Circle();

case 1 : return new Square();

case 2 : return new Triangle();

你那个Circle类是哪里来的?还有那个Triangle类是哪里的,所以会提示找不到符号

第四个:

System.out.println(“here”) 这一句没有用分号结束

第五个:

switch(rand.nextInt(3)){

default:

case 0 : return new Circle();

case 1 : return new Square();

case 2 : return new Triangle();

}

default以后什么也没有,在这里就是什么也不做.没有break语句,所以如果产生的值是0的话,那么下面那两个语句也会被执行。

楼主可以参考这些改进一下自己的程序!

下面是修改以后的示例代码,你可以自己完善一下

import java.util.*;

class Shape

{

public void draw(){}

public void p()

{

System.out.println(“here”);

}

}

class Square extends Shape

{

public void draw()

{

System.out.println(“Square.draw()”);

}

public void p()

{

System.out.println(“here is Triangle”);

}

}

class RandomShapeGenerator{

Square obj;

private Random rand = new Random(47);

public Shape next()

{

switch(rand.nextInt(3))

{

default: System.out.println(“OK”);

//case 0 : return new Circle();break;

case 1 : obj=new Square();break;

//case 2 : return new Triangle();break;

}

return obj;

}

}

public class Shapes

{

private static RandomShapeGenerator gen = new RandomShapeGenerator();

public static void main(String[] args)

{

Shape[] s = new Shape[9];

for(int i = 0;is.length;i++)

s[i] = gen.next();

for(Shape shp : s)

{

shp.draw();

shp.p();

}

}

}

Java中多态的优缺点是什么?

多态的好处:扩展性强,父类的变量可以赋值不同的子类对象,而调用不同的子类重写的方法

多态的弊端:不能使用子类特有的功能

这就是Java多态的优缺点了,想学习Java,自学看黑马程序员,有视频,有学习路线,让你学习不迷茫!

请教 Java中多态的缺点?

多态主要体现在方法重载和方法的重写上,一般来说,多态的出现是为了弥补之前单一的方法调用,觉得就是为了方便扩展而出现的,如果你抹掉不用,就没有优缺点可言了。如果多态发挥的尽情的话,对于学习它或是使用它的人来说,是比较容易混淆的(因为只有开发人员才知道各个方法的具体用途),但可以减少很多冗余代码~~一般越高级的程序,对某一特性就发挥的越淋漓尽致!

原创文章,作者:QXOPO,如若转载,请注明出处:https://www.506064.com/n/313475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QXOPOQXOPO
上一篇 2025-01-07 09:43
下一篇 2025-01-07 09:43

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python数据统计案例的实现

    Python作为一个高级编程语言,拥有着丰富的数据处理库和工具,能够快速、高效地进行各类数据处理和分析。本文将结合实例,从多个方面详细阐述Python数据统计的实现。 一、数据读取…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29

发表回复

登录后才能评论