小编Kap*_*Kap的帖子

铸造到正确的子类

我有一个名为Car的超类,有3个子类.

class Ford extends Car{

}

class Chevrolet extends Car{

}


class Audi extends Car{

}
Run Code Online (Sandbox Code Playgroud)

现在我有一个函数printMessge(Car car),它将打印一个特定汽车类型的消息.在实现中,我使用if语句来测试这样的类的实例.

public int printMessge(Car car){
     if((Ford)car instanceof Ford){
            // print ford

     }else if((Chevrolet)car instanceof Chevrolet){
            // print chevrolet

     }else if((Audi)car instanceof Audi){
            // print Audi
     }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我第一次用福特打电话给它printMessge(new Ford()),它打印福特消息但是当我打电话给它时printMessge(new Chevrolet()),我 从第一个if语句中得到EXCEPTION,表示雪佛兰不能投给福特.

我做错了什么,最好的方法是什么.

谢谢

java

0
推荐指数
1
解决办法
166
查看次数

标签 统计

java ×1