需要说明Classname name = new Classname2()

时间:2014-11-17 15:26:35

标签: java class

我需要一个关于这个例子的五年级解释:

Car x = new Ford();

为什么Ford可以是Car

1 个答案:

答案 0 :(得分:1)

在您的示例中,xFord类型Car。这看起来像是继承的一个例子。 Car是一个抽象类,包含所有汽车都有的东西,例如轮子,引擎,体型等。Ford将实现这些方法,因此它们特定于Ford所有的东西有

简单示例:

public abstract class Car {
    public boolean isCar() {
        return true;
    }
}

public class Ford extends Car {
    public boolean isFord() {
        return true;
    }
}

public class Audi extends Car {
   public boolean isAudi() {
        return true;
   }
}

System.out.println("Is Ford a car ? "+new Ford().isCar());
System.out.println("Is Audi a car ? "+new Audi().isCar());
System.out.println("Is Ford a ford ? "+new Ford().isFord());
System.out.println("Is Audi a ford ? "+new Audi().isFord());

最后一行可能会给出NPE,因为课程Audi没有函数isFord()