java接口的实现_java 接口与实现

ff4ff5733c2709706315804769a32a76.png

bfc914b6a1437b3a2f2f1d734b0965db.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值