我想输入矩形和圆形的数据然后再输出结果,不知道怎么返回还是怎么,输出的是默认值。

来源:10-3 Java 中的抽象类

holy_yakutsk

2017-03-25 13:54


http://img.mukewang.com/58d6058700016f1813130560.jpg

http://img.mukewang.com/58d605880001bc2608230585.jpg

http://img.mukewang.com/58d605880001c3dc08210596.jpg

http://img.mukewang.com/58d60589000180ef07010382.jpg

  • 不知道哪里遗漏了。忘大神指出

写回答 关注

2回答

  • 慕圣6138088
    2017-03-25 15:32:17
    已采纳

    main方法有问题:1.你用shuru  new 的圆形对象,但却用shape 父类 new 圆形子类,然后用子类对象jishuan调用方法(但这时候其实你并没有给 圆形对象的 属性赋值)  2.你用shape 父类 new 矩形子类,但没有给矩形属性赋值(这种方法也赋不了值)  。

    解决方法:

    1.删除shape jushuan = new Circle(); 

    shuru.mianji();

    shuru.zhouchang ; 

    2.Reclangle jushuan2 = new Reclange(); 

    jishuan2.a="你输入的值"; 

    jishuan2.b="你输入的值";

    jishuan2.mianji();

    jishuan2.zhouchang();


    //PS: jisuan  不是 jishuan

    holy_y...

    我搞定了,哈哈,我把double c = a*b;mianji方法里面,然后再直接用类创建对象赋值就可以了, .Reclangle jushuan2 = new Reclange(); 只是不明白为什么用接口对象指定类赋值就不可以, 可能是楼上说的地址不一样吧。 谢谢,打字辛苦了,那位也是

    2017-03-25 21:51:22

    共 2 条回复 >

  • Mad_Man_
    2017-03-25 15:37:56

    Shape jishuan = new Circle();和Circle shurn = new Circle();中的  jishuan和 shurn指向的地址不是一个地址,你给shurn 这个地址里的变量赋值的时候并不会给jishuan这个地址里的变量赋值


    holy_y...

    原来是这样,地址不一样,谢谢啊

    2017-03-25 21:36:38

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530649 学习 · 6091 问题

查看课程

相似问题