首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个关于interface的有关问题

2012-12-14 
请教一个关于interface的问题public interface Car{public void drive()}public class Benz implements C

请教一个关于interface的问题
public interface Car{
public void drive();
}

public class Benz implements Car{
public void drive(){
System.out.println("Driving Benz");
}
}

public class Bmw implements Car{
public void drive(){
System.out.println("Driving Bmw");
}
}

public class Driver {
public static Car driveCar(String s){
if (s.equalsIgnoreCase("Benz"))
return new Benz();
else if (s.equalsIgnoreCase("Bmw"))
return new Bmw();
}
}


public class Magnate {
public static void main(String[] args) {
Car car = Driver.driveCar("Benz");
car.drive();
}
}


在class Driver  return语句有问题吗?这样能不能返回一个Car类型,应该怎么修改,eclipse里面通过不了,这是《深入浅出设计模式》里面的一个例子,小白求指教。
[最优解释]

public class Driver
{
public static Car driveCar(String s)
{
if (s.equalsIgnoreCase("Benz"))
return new Benz();
else if (s.equalsIgnoreCase("Bmw"))
return new Bmw();
return null;//Here
}
}

[其他解释]
1楼正解
还有一点,
使用else if的时候,无论你把情况考虑的多么全面了,最好在最后再加一个esle{},防止特殊情况的出现
比如你这个例子,可以最后再加else{return null;}
就像我们在try cacth的时候,可能会针对很多不同的异常做单独的处理(即很多catch),但是最后还是需要加个 catch (Exception e){}也是这个原因
[其他解释]
引用:
Java code?1234567891011public class Driver{    public static Car driveCar(String s)    {        if (s.equalsIgnoreCase("Benz"))            return new Benz();        else if (s.equalsIgnor……
+1,LZ,if后面最好带着{},尽管只是一段话,养成好的编程习惯
[其他解释]
1L,加了一个renturn null ,还是报错,
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
This method must return a result of type Car

[其他解释]
已解决,谢谢
[其他解释]
public static Car driveCar(String s) 方法末尾加一个return ,因为你的if(){} else if(){}不一定有返回值;

热点排行
Bad Request.