SomeInterface.class和SomeClass.class之间的区别?

时间:2013-02-06 10:21:09

标签: java

我正在寻找Java中SomeInterface.classSomeClass.class之间的区别。有人可以解释一下吗?

修改:说SomeClass实施SomeInterface

1 个答案:

答案 0 :(得分:0)

java中的类用于保存数据并提供对该数据的操作。 Interfaces用于表示Polymorphism。它们定义了实践类提供的操作,以便它们具有相似的行为。 您可以将界面视为一种契约。

假设您有一些车辆,并希望每辆车知道它有多少车轮。 汽车,摩托车和其他一些车辆,你不知道它有多少轮子,必须先计算它们。 因此,您可以使用界面强制每辆车提供它拥有的车轮数量。

interface Vehicle {
    // define the contract
    int getNumberOfWheels();
}

class Car implements Vehicle {
    // respect the contract by prividing an implmentation for the method getNumberOfWheels()
    public int getNumberOfWheels() {
        return 4;
    }
}

class Motorcycle implements Vehicle {
    public int getNumberOfWheels() {
        return 2;
    }
}

class GenericVehicle implements Vehicle {
    public int getNumberOfWheels() {
        return countWheels();
    }

    private int countWheels() {
        int c=0;
        // count...
        return c;
    }
}


// using the classes / diferent types of vehicles
Vehicle v1 = new Car();
Vehicle v2 = new Motorcycle();
Vehicle v3 = new GenericVehicle();

System.out.println("Vehicle 1 has " + v1.getNumberOfWheels() + " wheels.");
System.out.println("Vehicle 2 has " + v2.getNumberOfWheels() + " wheels.");
System.out.println("Vehicle 3 has " + v3.getNumberOfWheels() + " wheels.");

对于您要添加的每种新型车辆,如果您希望它与其他车辆一样,则必须使用界面Vehicle

这不是关于Interfaces的任何事情,但我希望这会对你有所帮助。

相关问题