Computable.java
public interfaceComputable {int MAX = 46;int f(intx);
}
China.java
public class China implements Computable { //China类实现Computable接口
intnumber;public int f(int x) { //不要忘记public关键字
int sum=0;for(int i=1;i<=x;i++) {
sum=sum+i;
}returnsum;
}
}
Japan.java
public class Japan implements Computable { //Japan类实现Computable接口
intnumber;public int f(intx) {return MAX+x;
}
}
Example6_1.java
public classExample6_1 {public static voidmain(String args[]) {
China zhang;
Japan henlu;
zhang=newChina();
henlu=newJapan();
zhang.number=32+Computable.MAX;
henlu.number=14+Computable.MAX;
System.out.println("zhang的学号"+zhang.number+",zhang求和结果"+zhang.f(100));
System.out.println("henlu的学号"+henlu.number+",henlu求和结果"+henlu.f(100));
}
}
接口的理解
假如轿车、卡车、拖拉机、摩托车和客车都是机动车的子类,其中机动车是一个抽象类。机动车中有诸如“刹车”、“转向”等方法是合理的,即要求轿车、卡车、拖拉机、摩托车和客车都必须具体实现“刹车”、“转向”等功能。但是机动车类包含有两个抽象类方法“收取费用”、“调节温度”,那么所有子类都要重写这两个方法,即给出方法体,产生各自的的收费获取控制温度的行为。这显然不符合人们的思维逻辑,因为拖拉机可能不需要“”收取费用”、“调节温度”的功能,而其他一些类,如飞机、轮船等可能也需要具体实现“收取费用”、“调节温度”。
接口的思想在于它要求某些类有相同的方法,但方法的具体内容(方法体的内容)可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即所谓的方法绑定)。
Example6_2.java
abstract classMotorVehicles {abstract voidbrake();
}interfaceMoneyFare {voidcharge();
}interfaceControlTemperature {voidcontrolAirTemperature();
}class Bus extends MotorVehicles implementsMoneyFare {voidbrake() {
System.out.println("公共汽车使用毂式刹车技术");
}public voidcharge() {
System.out.println("公共汽车:一元/张,不计算公里数");
}
}class Taxi extends MotorVehicles implementsMoneyFare,ControlTemperature {voidbrake() {
System.out.println("出租车使用盘式刹车技术");
}public voidcharge() {
System.out.println("出租车:2元/公里,起价3公里");
}public voidcontrolAirTemperature() {
System.out.println("出租车安装了Hair空调");
}
}class Cinema implementsMoneyFare,ControlTemperature {public voidcharge() {
System.out.println("电影院:门票,十元/张");
}public voidcontrolAirTemperature() {
System.out.println("电影院安装了中央空调");
}
}public classExample6_2 {public static voidmain(String args[]) {
Bus bus101= newBus();
Taxi buleTaxi= newTaxi();
Cinema redStarCinema= newCinema();
bus101.brake();
bus101.charge();
buleTaxi.brake();
buleTaxi.charge();
buleTaxi.controlAirTemperature();
redStarCinema.charge();
redStarCinema.controlAirTemperature();
}
}
个人理解:一些公共类方法大家都要用到的就继承,一些特殊的就定义一个接口来实现。
class Taxi extends MotorVehicles implementsMoneyFare,ControlTemperatur