面向对象基础(3)

接口用于定义标准和扩展功能,允许类实现多个接口以实现多继承。文章通过动物、鸟类、飞机的例子展示了接口如何解决单根继承的问题。同时对比了抽象类,指出抽象类主要用于代码重用,而接口用于扩展系统和统一标准。
摘要由CSDN通过智能技术生成

接口

接口主要是用来定义标准的。
为什么要使用接口呢?假设现在有这样一个情况,我先定义了一个动物类(Animal)(具有name、age、color等属性,以及eat、drink和sleep等方法),然后再定义一个鸟类(Bird)并让Bird去继承Animal. 与此同时再定义一个飞机类(airPlane),我想要让鸟类和飞机类都具有飞行这个方法,那么如何去实现呢?难道再定义一个飞行类然后再让鸟和飞机去继承它吗?但Java中只允许单根继承,虽然然用多层继承可以解决这个问题,但是让一个鸟类和飞机类去继承一个飞行类在逻辑上似乎说不过去。于是为了解决这一问题,就出现了接口。接口就是外挂的功能。接口允许多实现,也就是说你想给一个类什么功能就可以去实现对应的接口

下面就是一个实现接口的示例

//定义飞行接口
public interface Fly {
    //定义一个飞行的方法
    public void fly();
}
//定义鸟类
public class Bird implements Fly{
    String name;//名字
    public Bird() {
    }
    public Bird(String name) {
        this.name = name;
    }
    //重写接口中的方法
    @Override
    public void fly() {
        System.out.println(name+"在飞");
    }
}
//定义飞机类
public class Plane implements Fly {
    String type;//飞机型号
    public Plane() {
    }
    public Plane(String type) {
        this.type = type;
    }
    //重写接口中的方法
    @Override
    public void fly() {
        System.out.println(type + "在飞");
    }
}
//定义测试类
public class Test {
    public static void main(String[] args) {
        Bird bird = new Bird("秃鹰");
        bird.fly();
        Plane plane = new Plane("歼16");
        plane.fly();
    }
}

在这里插入图片描述

接口和抽象类的区别

抽象类一般用来做父类,目的是代码重用。接口一般用来扩展功能,目的是扩展系统,提供对外访问,统一标准。

接口可以用extends多继承其他接口,从而实现标准的扩展和方法的扩展。一个类只能继承一个直接父类,但可以实现多个接口。

//攻击接口
public interface Attack {
    public void attack();
}
//治疗接口
public interface Treatment {
    public void treatTment();
}
//击杀接口(多继承)
public interface Keil extends Attack,Treatment{
    public void keil();
}
//防御接口
public interface Defense {
    public void defense();
}
//英雄类实现多接口(在实现类中要重写接口中的所有方法)
public class Hero implements Keil,Defense{
    @Override
    public void attack() {
        System.out.println("攻击");
    }
    @Override
    public void keil() {
        System.out.println("击杀");
    }
    @Override
    public void defense() {
        System.out.println("防御");
    }
    @Override
    public void treatTment() {
        System.out.println("治疗");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值