A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ytblght55 中级黑马   /  2013-6-16 13:00  /  1306 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我设计Unicycle,Bicycle,Tricycle三个class继承于Car.我给了个方法返回一个Car类型的对象,里面随即产生三个数,对应的返回三个class的对象.但是会报错,上转对象不成功.
  1. public Car next(){
  2. Scanner sc=new Scanner(System.in);
  3. System.out.println("请输入一个整数");
  4. int i=sc.nextInt()%3;
  5. switch (i){
  6. case 0:
  7. return new Bicycle();
  8. case 1:
  9. return new Tricycle();
  10. case 2:
  11. return new Unicycle();
  12. }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1

查看全部评分

7 个回复

倒序浏览
错误信息呢。
回复 使用道具 举报
import java.util.Scanner;

interface Cars{void show();}

class B implements Cars{
        public void show(){
                System.out.println("BBBB");
        }
}
class T implements Cars{
        public void show(){
                System.out.println("TTTT");
        }
}
class U implements Cars{
        public void show(){
                System.out.println("UUUU");
        }
}

public class Car {
        public static Cars getCar(){
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入");
                int i=sc.nextInt()%3;
                switch(i){
                        case 1:
                                return new B();
                        case 2:
                                return new T();
                        case 3:
                                return new U();
                }
                return null;// 应该就是这个地方了,前边应该对 i 进行一下判断,不然比如输入负数就会出现空指针异常
        }
        public static void main(String[] args){
                Cars c=Car.getCar();
                c.show();
        }
}

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

回复 使用道具 举报
package com.thread;

import java.util.Scanner;

abstract class Car {}

class Unicycle extends Car{}

class Bicycle extends Car{}

class Tricycle extends Car{}

public class TestCar {

        public static void main(String[] args) {
                if(null!=next())
                        System.out.println(next().getClass().getName());
                else
                        System.out.println("随机数范围不在1~3内,无对象产生");
        }
       
        public static Car next() {
                 Scanner sc=new Scanner(System.in);
         System.out.println("请输入随机数");
         int i=sc.nextInt()%3;
         switch(i){
                 case 1:
                        return new Bicycle();
                 case 2:
                        return new Tricycle();
                 case 3:
                        return new Unicycle();
                 default:         //switch语句应该设置一个默认值,就不会报错了
                                 return null;
         }   
        }
}

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 很给力!

查看全部评分

回复 使用道具 举报
薛淑凯 发表于 2013-6-16 13:53
import java.util.Scanner;

interface Cars{void show();}

good job~~~THS!!
回复 使用道具 举报
沐有鱼丸 发表于 2013-6-16 15:27
package com.thread;

import java.util.Scanner;

good job~~~THS!!
回复 使用道具 举报
已解决!
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马