这两个对象创建之间有什么区别,其中汽车是超类,丰田是子类...

汽车t =新Toyota();
Toyota T =新Toyota();

(我相信我们不能做这样的事情: Toyota t = new car(); ....为什么?)

继承让我感到困惑,多态性也让我感到困惑...任何帮助将不胜感激

最佳答案

区别在于对象t的类型:在第一种情况下,仅car的方法可用,而在第二种情况下,您还获得了toyota特定的方法(如果有)。

这是一个例子:

public class car {
    public void drive() {...}
    public void stop() {...}
}
public class toyota extends car {
    public void drive() {... /*toyota-specific code*/}
    public void stop() {... /*toyota-specific code*/}
    public void rollUpWindows() {...}
}

如果您声明
car c = new toyota();

您可以调用drivestop,但不能调用rollUpWindows。如果您声明
toyota c = new toyota();

您可以调用所有三种方法。

programming to an interfaces的一般概念与上面的案例1类似。

10-05 23:41