这两个对象创建之间有什么区别,其中汽车是超类,丰田是子类...
汽车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();
您可以调用
drive
和stop
,但不能调用rollUpWindows
。如果您声明toyota c = new toyota();
您可以调用所有三种方法。
programming to an interfaces的一般概念与上面的案例1类似。