接口

接口
1.接口是一种引用数据类型
2.接口是完全抽象的,(抽象类是半抽象的)或者说接口是一个特殊的抽象类
3.接口怎么定义的,语法是什么?[修饰符列表] interface 接口名{}
4.接口支持多继承,一个接口可以继承多个接口。
5.接口中只包含2部分:1、常量 ;2、抽象方法
6.接口中所有的元素是public修饰的(都是公开的)
7.接口中的方法都是抽象方法,所以接口中方法不能有方法体。
8.接口中的常量:public static final可以省略;public static final String name=“zs”;=====>String name=“zs”;
9.接口中抽象方法的public abstract可以省略
10.一个非抽象的类,实现接口的时候,必须将接口所有的方法加以实现。
11.一个类可以实现多个接口
12.extends和implements可以共存,extends在前,implements在后
13.使用接口,写代码的时候,可以使用多态(父类型引用指向子类型对象)

类和类之间叫继承(不支持多继承);类和接口之间叫实现(支持多实现)

一个类可以实现多个接口吗?
可以实现
这个机制弥补了java中哪个缺陷?
java中类和类只支持单继承,实际上单继承为了简单出现的,现实生活中存在多继承,java中的接口弥补了单继承带来的缺陷

多态:
//调用接口面向对象编程
//编译看左,运行看右(编译绑定是父类型,运行时绑定子类型)
MyMath mm=new MyMathImpl();

extends和implement同时出现

//父类:动物
class Animal{

}
//子类继承父类,并且实现鱼
class Fish extends Animal implements Flyable{
    @Override
    public void fly() {
        System.out.println("鱼儿想飞了	")
    }
}
interface Flyable{
    void fly();
}
class pp {
    public static void main(String[] args) {

        Flyable flyable = new Fish();
        flyable.fly();

    }
}

接口在开发中作用:
作用:解耦和
接口在开发中的作用,类似于多态在开发中的作用。
提高代码的扩展力,降低代码的耦合度,符合ocp开发原则。
接口的使用离不开多态机制。(接口+多态才可以达到降低耦合度)
接口可以解耦合,解开的是谁和谁的耦合

public class Test {
    public static void main(String[] args) {
        FoodMeau foodMeau = new ChinaChuShi();
        GuKe guKe = new GuKe(foodMeau);
        //顾客点餐
        guKe.eat();
    }
}

class GuKe {
    private FoodMeau foodMeau;

    public GuKe() {
    }

    public GuKe(FoodMeau foodMeau) {
        this.foodMeau = foodMeau;
    }

    public void setFoodMeau(FoodMeau foodMeau) {
        this.foodMeau = foodMeau;
    }

    public FoodMeau getFoodMeau() {
        return foodMeau;
    }

    public void eat() {
        FoodMeau foodMeau = this.getFoodMeau();
        foodMeau.XihongShiDanTang();
        foodMeau.yuXiangRouSi();
    }

}

interface FoodMeau {
    void yuXiangRouSi();

    void XihongShiDanTang();
}

class ChinaChuShi implements FoodMeau {

    @Override
    public void yuXiangRouSi() {
        System.out.println("中餐师傅做鱼香肉丝");
    }

    @Override
    public void XihongShiDanTang() {
        System.out.println("中餐厨师做西红柿蛋汤");
    }
}

结果 :
中餐厨师做西红柿蛋汤
中餐师傅做鱼香肉丝

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值